Developers

A handwritten card is one API call.

Post the recipient and the exact words. We write it with a real pen, stamp it and mail it, and you can read its status at any time.

  • POST /api/v1/notes. Recipient, the exact message (up to 500 characters) and optional context for your records.
  • Idempotency-Key header. The same key and body returns the same note. A changed body under an old key is refused, never sent twice.
  • Address checks. US addresses are verified and standardized; an undeliverable one is rejected and nothing is created.
  • Readable status. GET a note to see created, written or mailed.
  • Per-team workspace. Your own keys, card designs, return address and billing, plus a portal for everyone who is not writing code.
  • Test keys. The same validation as live, but notes are never written, mailed or billed; they move to printed and mailed a minute apart so you can test your handlers.
  • Signed webhooks. An event for every status change, signed with HMAC-SHA256, retried for about two days.
curl https://you.notecardhq.com/api/v1/notes \
  -H "Authorization: Bearer $NOTECARDHQ_API_KEY" \
  -H "Idempotency-Key: first-sale:usr_8213" \
  -H "Content-Type: application/json" \
  -d '{
    "recipient": {
      "firstName": "Sam",
      "address1": "123 Main St",
      "city": "Austin", "state": "TX",
      "postalCode": "78701", "country": "US"
    },
    "content": "Hey Sam, congrats on your first sale! ..."
  }'
AI agents and tools

Let an agent send the card.

  • MCP server. Connect Claude or any MCP client to https://app.notecardhq.com/api/mcp with your API key; the key picks your workspace. Tools: send_note and get_note. Listed in the official MCP Registry as com.notecardhq/notecardhq.
  • OpenAPI spec. /api/v1/openapi.json on your workspace, for SDK generators, Postman and agent frameworks.
  • Same safety rails. Agents go through the same validation, idempotency keys and address checks as your code.
{
  "mcpServers": {
    "notecardhq": {
      "type": "http",
      "url": "https://app.notecardhq.com/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
Going live

Build with a test key, then go live.

01

Build with a test key

Same API, same validation, nothing written or mailed. Test retries, refused requests and your webhook handler.

02

Send one to yourself

Point the first real note at an address you control and watch it move through the portal.

03

Turn on the trigger

Wire the call to the event that should send a card, and let the robots take it from there.

Get your API key.

Tell us what you want to send and we will set up your workspace and key.