# Handwrite IO > Handwrite is a US direct-mail service that writes and mails real handwritten cards on demand. Its REST API (https://api.handwrite.io/v1) exposes four operations: list handwriting styles, list stationery, send a card to 1-10 recipients, and fetch an order. Handwrite does not publish an llms.txt of its own — probed 2026-08-13 on api.handwrite.io, handwrite.io, www.handwrite.io and documentation.handwrite.io, all 404. This file is generated by API Evangelist from the provider's public documentation and the artifacts in this repository. ## What an agent needs to know first - **Every successful `POST /send` with a live key mails a physical card and bills the account** ($2.99 down to $2.45 per card by volume). It is not reversible; Handwrite states cancellations are not typically allowed. Require human confirmation. - **There is no idempotency key.** A retried or duplicated send produces duplicated physical mail. Capture the returned order `_id` and reconcile with `GET /order/{orderId}` instead of retrying. - **Test mode is a key prefix, not a host.** Keys beginning `test_hw` are not billed and mail nothing; keys beginning `live_hw` are billed and mail. Same base URL either way. - **Auth is the raw key in `Authorization` with no `Bearer` prefix.** `Content-Type: application/json` is required. Browser-side calls are forbidden by the provider. - **Rate limit is 60 requests per minute per API key**, flat for every account. `X-RateLimit-Limit`, `X-RateLimit-Remaining` and `X-RateLimit-Reset` (epoch seconds) are returned; there is no `Retry-After`. - **US only.** `state` must be a capitalized two-letter US abbreviation and `zip` exactly 5 characters. There is no country field. - **No webhooks.** Order status is discoverable only by polling `GET /order/{orderId}`. ## APIs - [Handwrite IO Handwriting API](https://documentation.handwrite.io/#get-handwritings): `GET /v1/handwriting` — `getHandwritings`. Returns a bare array of handwriting styles with `_id`, `name`, `preview_url`. - [Handwrite IO Stationery API](https://documentation.handwrite.io/#get-stationery): `GET /v1/stationery` — `getStationery`. Returns a bare array of card options, both Handwrite's public stationery and any custom stationery the account uploaded. - [Handwrite IO Send API](https://documentation.handwrite.io/#send-a-letter): `POST /v1/send` — `sendLetter`. Body requires `message` (<=320 chars), `handwriting` (a Handwriting `_id`), `card` (a Stationery `_id`) and `recipients` (1-10 objects); optional `from` return address. Accepts an array of such objects for batch, up to 1,000 orders per request. Returns an array of Order objects. - [Handwrite IO Orders API](https://documentation.handwrite.io/#get-an-order): `GET /v1/order/{orderId}` — `getOrder`. Returns one order: `status` (processing | written | complete | problem | cancelled), `environment` (live | test), and once complete a `proofs` array of `{job_type, image_url}` for the card and the envelope. There is no list-orders operation. ## Specs Handwrite publishes no OpenAPI. These are API Evangelist derivations from the provider's documentation. - [Handwriting API OpenAPI](https://raw.githubusercontent.com/api-evangelist/handwrite-io/refs/heads/main/openapi/handwrite-io-handwriting-api-openapi.yml) - [Stationery API OpenAPI](https://raw.githubusercontent.com/api-evangelist/handwrite-io/refs/heads/main/openapi/handwrite-io-stationery-api-openapi.yml) - [Send API OpenAPI](https://raw.githubusercontent.com/api-evangelist/handwrite-io/refs/heads/main/openapi/handwrite-io-send-api-openapi.yml) - [Orders API OpenAPI](https://raw.githubusercontent.com/api-evangelist/handwrite-io/refs/heads/main/openapi/handwrite-io-orders-api-openapi.yml) - [Postman collection](https://raw.githubusercontent.com/api-evangelist/handwrite-io/refs/heads/main/collections/handwrite-io.postman_collection.json) ## Runtime semantics - [Conventions](https://raw.githubusercontent.com/api-evangelist/handwrite-io/refs/heads/main/conventions/handwrite-io-conventions.yml) — auth style, no idempotency, no pagination, batching, identifiers, versioning - [Authentication](https://raw.githubusercontent.com/api-evangelist/handwrite-io/refs/heads/main/authentication/handwrite-io-authentication.yml) - [Rate limits](https://raw.githubusercontent.com/api-evangelist/handwrite-io/refs/heads/main/rate-limits/handwrite-io-rate-limits.yml) - [Error catalog](https://raw.githubusercontent.com/api-evangelist/handwrite-io/refs/heads/main/errors/handwrite-io-problem-types.yml) - [Sandbox / test mode](https://raw.githubusercontent.com/api-evangelist/handwrite-io/refs/heads/main/sandbox/handwrite-io-sandbox.yml) - [Data model](https://raw.githubusercontent.com/api-evangelist/handwrite-io/refs/heads/main/data-model/handwrite-io-data-model.yml) - [Lifecycle](https://raw.githubusercontent.com/api-evangelist/handwrite-io/refs/heads/main/lifecycle/handwrite-io-lifecycle.yml) - [Plans and pricing](https://raw.githubusercontent.com/api-evangelist/handwrite-io/refs/heads/main/plans/handwrite-io-plans-pricing.yml) - [Agentic access contracts](https://raw.githubusercontent.com/api-evangelist/handwrite-io/refs/heads/main/agentic-access/handwrite-io-agentic-access.yml) ## Agent Skills - [Send a handwritten card](https://raw.githubusercontent.com/api-evangelist/handwrite-io/refs/heads/main/skills/handwrite-io-send-handwritten-card.md) - [Track an order to delivery](https://raw.githubusercontent.com/api-evangelist/handwrite-io/refs/heads/main/skills/handwrite-io-track-order.md) - [Browse handwriting and stationery options](https://raw.githubusercontent.com/api-evangelist/handwrite-io/refs/heads/main/skills/handwrite-io-browse-options.md) ## Docs - [API documentation](https://documentation.handwrite.io/) - [Getting started and API keys](https://documentation.handwrite.io/#getting-started) - [Rate limiting](https://documentation.handwrite.io/#rate-limiting) - [Response codes](https://documentation.handwrite.io/#response-codes) - [Developer dashboard (login required)](https://app.handwrite.io/integrations/api) - [Documentation source repository](https://github.com/handwriteio/API-Docs) ## Company - [Website](https://www.handwrite.io/) - [Pricing](https://www.handwrite.io/pricing) - [Integrations — Zapier plus the REST API](https://www.handwrite.io/integrations) - [FAQ](https://www.handwrite.io/faq) - [Contact](https://www.handwrite.io/contact-us) — hello@handwrite.io - [Blog](https://www.handwrite.io/blog) - [Sign up](https://app.handwrite.io/signup) - [GitHub](https://github.com/handwriteio) ## Not available Recorded so an agent does not go looking. All probed 2026-08-13. - No provider-published OpenAPI, llms.txt, or `/.well-known/` documents of any kind. - No MCP server (hosted or stdio) and no A2A agent card. - No webhooks, events, or AsyncAPI — poll `GET /order/{orderId}` instead. - No first-party SDK in any registry. The only installable client is a community Elixir library, last released 2020-11-14. - No status page, changelog, deprecation policy, or SLA. - No terms of service, privacy policy, or security.txt published on any Handwrite domain.