For agents & developers
Your words. Our mailbox.
Create a personal card order from an assistant or application. The customer pays through Stripe before anything is written or mailed.
One card, one recipient
$3 includes a white card, writing in real pen and ink by a handwriting machine, an addressed envelope, and U.S. postage. Standard orders are mailed within 2 business days after payment. Rush is $1 extra and is mailed within 1 business day. Weekends and U.S. postal holidays are excluded. Postal transit is additional; no arrival date is guaranteed.
Prepare, approve, pay
- Get the message, signature, recipient's U.S. address, and sender's name and email from the user. Never invent missing details.
- Show the user the exact wording, destination, and price. Get their approval before submitting personal details.
- Create a checkout with a new UUID v4
requestId. Return the Stripe URL to the user for payment. - Only treat a card as paid after the status endpoint reports
paid. Creating checkout alone never dispatches mail.
| Method | Endpoint | Purpose |
|---|---|---|
| GET | /api/v1/capabilities | Limits, pricing, availability |
| POST | /api/v1/letters/quote | Price a standard or rush card |
| POST | /api/v1/letters/checkout | Save details and get a payment link |
| GET | /api/payments/status?session_id=... | Payment and mailing status; no personal details |
Create a checkout
Base URL: https://inqued.com. Send Content-Type: application/json. Server-side requests do not need an API key. This endpoint only creates an unpaid checkout; it cannot charge a saved card. Cross-origin browser requests are not supported.
{
"requestId": "c1a47db3-2d90-4bf5-bc24-028d4549ac12",
"sender": { "name": "Alex Example", "email": "[email protected]" },
"recipient": {
"name": "Sarah Example",
"address1": "123 Example Street",
"address2": "Apt 4",
"city": "Birmingham",
"state": "AL",
"postalCode": "35203",
"country": "US"
},
"message": "Sarah,\n\nThank you for being there for me.",
"signature": "With love, Alex",
"speed": "standard",
"confirmed": true
}The example address is illustrative, not verified. Use the recipient's real address with permission. Response: orderId, url, quote, and paymentRequired: true. Prices are calculated by the server, never accepted from the client.
Limits and retries
- Message: 400 characters, at most 10 lines, no single word over 40 characters. Signature: 50 characters, no single word over 30.
- Destinations: 50 U.S. states and Washington, DC only. ZIP or ZIP+4 required. Address format is checked; postal deliverability is not automatically verified.
- Reuse the same requestId and identical details after a timeout. A changed payload returns 409. Do not retry with a new ID unless the user intends a new order.
- Checkout is limited to 12 attempts per IP per 10 minutes. A 429 response includes Retry-After. Do not rotate IPs to bypass limits.
- Expired checkout: ask the user before making a new order. A 503 means checkout is not currently enabled.
- The Stripe return URL includes a session_id. Treat that ID and the payment link as private. There is no public lookup of messages or recipient addresses.
Data handling. Questions: [email protected].
