<!-- Markdown representation of https://www.getpatter.com/developers -->
> Patter developer resources: SDKs, documentation, CLI, MCP server, OpenAPI 3.1 specification, error reference and machine-readable discovery endpoints.

Canonical URL: https://www.getpatter.com/developers
Site map: https://www.getpatter.com/sitemap.xml · Overview for LLMs: https://www.getpatter.com/llms.txt · Developer resources: https://www.getpatter.com/developers

---
# Patter developer resources

APIs, specifications and machine-readable endpoints

Everything an agent or a developer needs to work with Patter, at predictable URLs. If you are a language model reading this page, start with [llms.txt](https://www.getpatter.com/llms.txt).

## SDKs

- Python SDK — `pip install getpatter` · [overview](https://www.getpatter.com/products/python-sdk) · [PyPI](https://pypi.org/project/getpatter/)

- TypeScript SDK — `npm install getpatter` · [overview](https://www.getpatter.com/products/typescript-sdk) · [npm](https://www.npmjs.com/package/getpatter)

- Source — [github.com/PatterAI/Patter](https://github.com/PatterAI/Patter) (MIT)

## Documentation

- [docs.getpatter.com](https://docs.getpatter.com) — quickstart, configuration, agents, providers, tools, guardrails, events, metrics, dashboard

- [Quickstart (Markdown)](https://docs.getpatter.com/quickstart-create.md) — the create-a-project walkthrough, including the CLI

- [llms.txt](https://www.getpatter.com/llms.txt) — condensed overview for language models

- [llms-full.txt](https://www.getpatter.com/llms-full.txt) — full API reference in one file

## Command-line interface

The `getpatter` CLI scaffolds a runnable voice agent project — entry file, environment template, dependency manifest and README — through an interactive wizard. Every prompt has an equivalent flag, so it also runs non-interactively in CI. It ships inside both published SDK packages, and can be run without installing anything:

```bash
npm create getpatter # TypeScript, no install needed
npx getpatter init # TypeScript, if getpatter is installed
uvx getpatter init # Python, no install needed
getpatter init # Python, if getpatter is installed
```

Published as [getpatter](https://www.npmjs.com/package/getpatter) and [create-getpatter](https://www.npmjs.com/package/create-getpatter) on npm and [getpatter](https://pypi.org/project/getpatter/) on PyPI. The full command reference is in the [quickstart](https://docs.getpatter.com/quickstart-create.md).

## MCP server

Patter ships a Model Context Protocol server that gives Claude, ChatGPT and other MCP-capable agents the ability to place and receive phone calls, hand a task to a third party, and read back transcripts, metrics and costs. It speaks Streamable HTTP and stdio, and exposes seven tools: `make_call`, `call_third_party`, `get_calls`, `get_transcript`, `end_call`, `get_metrics` and `configure_inbound`.

The server is self-hosted: it places real calls with your own carrier and model credentials, so it runs inside your infrastructure rather than on ours. Its discovery manifest is at [/.well-known/mcp.json](https://www.getpatter.com/.well-known/mcp.json) and the source is at [github.com/PatterAI/patter-mcp](https://github.com/PatterAI/patter-mcp).

```bash
git clone https://github.com/PatterAI/patter-mcp && cd patter-mcp
npm install && npm run build && npm start
claude mcp add --transport http patter-mcp http://localhost:3000/mcp
```

## Website API

getpatter.com exposes a small public API for the forms on this site. It is described by an OpenAPI 3.1 document with a unique `operationId`, typed parameters and response schemas on every operation, which makes it directly usable as an LLM function-calling tool definition.

- [/openapi.json](https://www.getpatter.com/openapi.json) — OpenAPI 3.1 specification

- [/.well-known/api-catalog](https://www.getpatter.com/.well-known/api-catalog) — RFC 9727 API discovery document

Requests and responses are JSON. Note that the SDK itself needs no API key and no account — this API only backs the demo-request and waiting-list forms.

## Error responses

Every API error is a JSON document following [RFC 9457 (Problem Details for HTTP APIs)](https://www.rfc-editor.org/rfc/rfc9457), served as `application/problem+json`. Each one carries a stable `code`, a human-readable `detail`, and a `hint` describing how to recover. The same fields are repeated under a nested `error` object for clients that expect that shape.

```
{
 "type": "https://www.getpatter.com/developers#errors-validation-failed",
 "title": "Validation failed",
 "status": 400,
 "detail": "Full name, company name and email are required",
 "instance": "/api/waitlist",
 "code": "validation_failed",
 "hint": "Check the request body against the schema in https://www.getpatter.com/openapi.json ...",
 "error": { "code": "validation_failed", "message": "...", "hint": "..." }
}
```

### validation_failed — 400

The request body is missing a required field, or a field is malformed or too long. Check it against the schema in [/openapi.json](https://www.getpatter.com/openapi.json) and resend.

### method_not_allowed — 405

The endpoint was called with the wrong HTTP method. Every endpoint on this API is `POST` with a JSON body.

### not_found — 404

No such API endpoint. See [/openapi.json](https://www.getpatter.com/openapi.json) for the paths that exist.

### service_not_configured — 500

A server-side credential is missing. Not caused by your request; retry later or email [hello@getpatter.com](mailto:hello@getpatter.com).

### upstream_failed — 502

A downstream provider rejected the request. Retry after a short backoff.

### internal_error — 500

An unexpected server error. Retry after a short backoff.

### not_acceptable — 406

The `Accept` header of the request matches none of the representations this site can serve. Pages are available as `text/html` and `text/markdown`.

## Markdown representations

Every public page on this site is also served as Markdown, per [acceptmarkdown.com](https://acceptmarkdown.com). Request it either way:

```bash
curl -H "Accept: text/markdown" https://www.getpatter.com/
curl https://www.getpatter.com/index.md
```

Responses carry `Vary: Accept`, so a cache never serves the HTML variant to a client that asked for Markdown. An `Accept` header we cannot satisfy returns `406` with the list of available media types.

## Discovery endpoints

- [/sitemap.xml](https://www.getpatter.com/sitemap.xml) — every public page

- [/robots.txt](https://www.getpatter.com/robots.txt) — crawler policy, including named LLM crawlers

- [/openapi.json](https://www.getpatter.com/openapi.json) — OpenAPI 3.1 specification

- [/.well-known/api-catalog](https://www.getpatter.com/.well-known/api-catalog) — RFC 9727 API catalog

- [/.well-known/mcp.json](https://www.getpatter.com/.well-known/mcp.json) — MCP server manifest

- [/.well-known/security.txt](https://www.getpatter.com/.well-known/security.txt) — RFC 9116 security contact
