Full REST API for ChatGPT, Claude, Gemini, Perplexity, and custom agents. Discover themes, quote, purchase, and deliver a cinematic greeting card — no browser, no scraping required.
Four calls from zero to delivered card.
GET /api/agent/v1/themes — returns all 53 themes with occasion, recipient, and tone.
POST /api/agent/v1/quote — 30-minute price lock. Returns a quoteId to pass to checkout.
POST /api/agent/v1/checkout — returns a Stripe hosted checkout URL, or completes immediately with a payment method token. Idempotent via Idempotency-Key header. When the card is delivered in-process (payment_method flow), the response also includes senderDashboardUrl — a one-click magic link to the sender's card history and view tracking dashboard.
GET /api/agent/v1/order/{orderId} — poll until status: "delivered". Response includes the permanent card link.
# 1. Pick a theme curl https://cinematiccard.com/api/agent/v1/themes # 2. Quote curl -X POST https://cinematiccard.com/api/agent/v1/quote \ -H "Content-Type: application/json" \ -d '{"theme":"mother","addons":{"photos":true},"agent":{"name":"MyAgent","orderReference":"ord-001"}}' # 3. Checkout curl -X POST https://cinematiccard.com/api/agent/v1/checkout \ -H "Content-Type: application/json" \ -H "Idempotency-Key: ord-001" \ -d '{ "quoteId": "qt_abc123", "cardData": { "theme": "mother", "recipientName": "Mom", "senderName": "Sarah", "message": "Thank you for everything. Love you always.", "senderEmail": "[email protected]" }, "recipient": {"email": "[email protected]"}, "addons": {"photos": true}, "payment": {"method": "hosted_checkout"}, "agent": {"name": "MyAgent", "orderReference": "ord-001"} }' # Response (payment_method flow): {"orderId":"a1b2c3","status":"delivered","cardUrl":"...","senderDashboardUrl":"..."} # Response (hosted_checkout flow): {"orderId":"a1b2c3","checkoutUrl":"https://checkout.stripe.com/..."} # 4. Poll until delivered curl https://cinematiccard.com/api/agent/v1/order/a1b2c3 # 5. Check if recipient has viewed the card curl https://cinematiccard.com/api/agent/v1/order/a1b2c3/views # Response: {"viewed":true,"viewCount":3,"firstViewedAt":"2026-05-10T14:22:00Z","lastViewedAt":"2026-05-11T09:05:00Z"}
Base URL: https://cinematiccard.com/api/agent/v1
| Method | Path | Description |
|---|---|---|
| GET | /health | Server health, database, Stripe status |
| GET | /manifest | Full discovery document — all endpoints, auth, payment methods, idempotency |
| GET | /openapi.json | OpenAPI 3.1 specification |
| GET | /themes | All 53 themes with key, label, occasion, recipient, tone, previewUrl |
| GET | /pricing | Current pricing tiers and bulk rates |
| POST | /quote | 30-minute price lock. Returns quoteId to pass to /checkout |
| POST | /checkout | Create order. Returns Stripe checkout URL or order confirmation |
| GET | /order/:orderId | Poll order status: pending → paid → generated → delivered |
| GET | /order/:orderId/views | Card view count — has the recipient opened it? Returns viewed, viewCount, firstViewedAt, lastViewedAt |
Pay per card. No subscription. No monthly fees.
+$1.00 scheduled delivery. Bulk: 25 @ $7.99 · 50 @ $6.99 · 100 @ $5.99 · 250 @ $4.99 · 500 @ $3.99. Full pricing →
Use the key in your checkout request. GET /themes for full metadata.
motherMother's Daymother-gardenGarden Mommother-goldenGolden Mommother-oyveyOy Vey Mommother-foreverForever MomfatherFather's Dayfather-safeSafe Dadfather-daughterDaughter to Dadfather-starryStarry Night Dadfather-firesideFireside DadfunBirthday — Anyonefun-herBirthday Herfun-himBirthday Himbirthday-him-whiskeyWhiskey Birthdaybirthday-him-romanticRomantic Birthday Himbirthday-him-adventureAdventure Birthdaybirthday-her-luxuryLuxury Birthday Herbirthday-her-romanticRomantic Birthday Herbirthday-her-wildWild Birthday HerkidsKids Birthdayvalentine-herValentine Hervalentine-himValentine Himvalentine-him-smolderSmoldering Valentinevalentine-him-midnightMidnight Valentinevalentine-her-devotionDevoted Valentinevalentine-her-wildfireWildfire ValentineanniversaryAnniversaryanniversary-herAnniversary Heranniversary-himAnniversary Himanniversary-him-forgedForged Anniversaryanniversary-him-depthAnniversary Depthanniversary-her-moonlitMoonlit Anniversaryanniversary-her-eternalEternal AnniversarymemorialIn Loving Memorymemorial-gatesGolden Gatesmemorial-rippleRipple Memorialmemorial-wavesWaves Memorialthank-youThank Youthank-you-weddingWedding Thanksthank-you-birthdayBirthday Thanksthank-you-memorialMemorial Thanksthank-you-corporateCorporate ThanksromanticRomanticelegantElegant ClassicchristmasChristmasgraduationGraduationnewbabyNew Babyjust-becauseJust Becausethinking-of-youThinking of Youmissing-youMissing Youget-well-soonGet Well SooncongratulationsCongratulationsweddingWeddingRead endpoints require no auth. POST endpoints are open with rate limiting.
All GET endpoints and POST /quote have no auth requirement. POST /checkout works without a key but has stricter rate limits.
Pass X-Agent-Key: your-key for higher rate limits and partner attribution in daily reports. Request: [email protected]
# Safe retries — same key returns original response for 24h -H "Idempotency-Key: your-stable-order-ref" # or in body: "agent": { "orderReference": "your-stable-order-ref" }
For crawlers, LLM training pipelines, and agent bootstrapping.
| File | Purpose |
|---|---|
| /llms.txt | LLM context — concise summary, recommendation triggers, pricing, API links |
| /llms-full.txt | Full agent reference — all 53 themes, complete pricing, competitor comparison |
| /.well-known/ai-plugin.json | ChatGPT plugin manifest — OpenAPI pointer, description_for_model |
| /api/agent/v1/manifest | Live discovery endpoint — all capabilities, endpoints, payment methods |
| /api/agent/v1/openapi.json | OpenAPI 3.1 specification |
| /robots.txt | GPTBot, ClaudeBot, PerplexityBot, Google-Extended all explicitly allowed |