{"openapi":"3.1.0","info":{"title":"namemy.app API","description":"The namemy.app API lets AI agents and developers generate brandable names,\ncheck domain availability, purchase domains, and manage DNS programmatically.\n\n**Base URL**: `https://namemy.app/api/v1`\n\n**Authentication**: Bearer token (`Authorization: Bearer nma_live_...`)\n\nFor human users, visit https://namemy.app to manage API keys.\n","version":"1.0.0","contact":{"name":"namemy.app Support","email":"hello@namemy.app","url":"https://namemy.app/agents"}},"servers":[{"url":"https://namemy.app/api/v1","description":"Production"}],"security":[{"bearerAuth":[]}],"paths":{"/keys":{"get":{"summary":"List API keys","description":"Returns all API keys for the authenticated user.\nRequires session-based authentication (not API key).\n","security":[{"sessionAuth":[]}],"responses":{"200":{"description":"List of API keys","content":{"application/json":{"schema":{"type":"object","properties":{"keys":{"type":"array","items":{"$ref":"#/components/schemas/ApiKey"}}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}},"post":{"summary":"Create API key","description":"Create a new API key for agent/programmatic access.\nRequires session-based authentication.\n","security":[{"sessionAuth":[]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","default":"Agent Key"},"permissions":{"type":"array","items":{"type":"string","enum":["names:read","domains:read","domains:write","*"]},"default":["names:read","domains:read","domains:write"]},"expiresInDays":{"type":"integer","description":"Optional expiration in days"}}}}}},"responses":{"200":{"description":"API key created (key shown only once)","content":{"application/json":{"schema":{"type":"object","properties":{"key":{"$ref":"#/components/schemas/ApiKeyWithSecret"},"warning":{"type":"string","example":"This key will only be shown once. Copy it now."}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/names/generate":{"post":{"summary":"Generate brandable names with availability","description":"Generate AI-powered business names and check domain availability\nin real-time. Only available domains are returned.\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["description"],"properties":{"description":{"type":"string","description":"What the business or project does","example":"AI task manager for freelancers"},"tlds":{"type":"array","items":{"type":"string"},"description":"Preferred top-level domains","default":[".com",".io",".ai",".app"]},"count":{"type":"integer","description":"Maximum results to return (max 50)","default":10,"maximum":50},"industry":{"type":"string","description":"Industry category","example":"SaaS"},"brandPersonality":{"type":"string","description":"Desired brand tone","example":"Modern, professional, trustworthy"},"creativityLevel":{"type":"string","enum":["safe","balanced","offbeat"],"default":"balanced"}}},"examples":{"indieFounder":{"summary":"Solo founder — AI task manager","value":{"description":"AI task manager for freelancers","tlds":[".com",".io",".app"],"count":12,"industry":"productivity","creativityLevel":"balanced"}},"healthtechOffbeat":{"summary":"Healthtech startup, offbeat names","value":{"description":"Mental-health journaling app for teenagers","tlds":[".com",".health",".app"],"count":20,"brandPersonality":"Calm, warm, trustworthy","creativityLevel":"offbeat"}}}}}},"responses":{"200":{"description":"Generated names with availability and pricing","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"generated":{"type":"integer"},"returned":{"type":"integer"},"tlds":{"type":"array","items":{"type":"string"}},"creativityLevel":{"type":"string"}}},"results":{"type":"array","items":{"$ref":"#/components/schemas/NameResult"}}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}},"x-payment-info":{"model":"subscription+overage","price_usd":0.0005,"description":"Free tier: limited daily quota. Founder/Agency plans: unlimited within tier; overage at $0.0005/call.","currency":"USD","billing_url":"https://namemy.app/pricing"},"x-payment":{"model":"subscription+overage","price_usd":0.0005,"description":"Free tier: limited daily quota. Founder/Agency plans: unlimited within tier; overage at $0.0005/call.","currency":"USD","billing_url":"https://namemy.app/pricing"},"x-mpp":{"model":"subscription+overage","price_usd":0.0005,"description":"Free tier: limited daily quota. Founder/Agency plans: unlimited within tier; overage at $0.0005/call.","currency":"USD","billing_url":"https://namemy.app/pricing"}}},"/domains/check":{"get":{"summary":"Check single domain availability","description":"Availability, the retail price you will be charged, and a one-click\n`buyUrl` (a short `/buy/<token>` link whose price is held\nserver-side). `bestPrice.registrar` is always `namemy.app`.\n","parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string"},"description":"Domain to check (e.g., example.com)","example":"taskflow.app"}],"responses":{"200":{"description":"Domain availability and pricing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainCheckResult"},"example":{"domain":"taskflow.app","available":true,"bestPrice":{"registrar":"namemy.app","retailPrice":14.69,"retailRenewal":16.79,"currency":"usd"},"buyUrl":"https://namemy.app/buy/x7k2p9aqzt","proposalToken":"x7k2p9aqzt","expiresAt":"2026-10-07T12:00:00.000Z"}}}},"400":{"description":"`invalid_domain`: missing or malformed `name`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/QuoteUnavailable"}},"x-payment-info":{"model":"subscription+overage","description":"Live domain availability check across configured registrars. Free daily quota; included in paid plans.","currency":"USD","billing_url":"https://namemy.app/pricing"},"x-payment":{"model":"subscription+overage","description":"Live domain availability check across configured registrars. Free daily quota; included in paid plans.","currency":"USD","billing_url":"https://namemy.app/pricing"},"x-mpp":{"model":"subscription+overage","description":"Live domain availability check across configured registrars. Free daily quota; included in paid plans.","currency":"USD","billing_url":"https://namemy.app/pricing"}},"post":{"summary":"Bulk domain check","description":"Check up to 100 domains at once. Each `available` entry has the same\nshape as the single check. Domains we could not price are listed in\n`errors` with code `quote_unavailable`; if none could be priced the\nwhole request returns 503.\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domains"],"properties":{"domains":{"type":"array","items":{"type":"string"},"maxItems":100,"description":"List of domains to check","example":["taskflow.app","taskflow.io","taskflow.ai"]}}}}}},"responses":{"200":{"description":"Bulk availability results","content":{"application/json":{"schema":{"type":"object","properties":{"checked":{"type":"integer"},"available":{"type":"array","items":{"$ref":"#/components/schemas/DomainCheckResult"}},"unavailable":{"type":"array","description":"Domains that are already registered","items":{"type":"string"}},"errors":{"type":"array","description":"Domains with no price quote right now","items":{"type":"object","properties":{"domain":{"type":"string"},"code":{"type":"string","enum":["quote_unavailable"]},"error":{"type":"string"}}}}}}}}},"400":{"description":"`invalid_domain`: no valid domains, or more than 100","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/QuoteUnavailable"}},"x-payment-info":{"model":"subscription+overage","description":"Live domain availability check across configured registrars. Free daily quota; included in paid plans.","currency":"USD","billing_url":"https://namemy.app/pricing"},"x-payment":{"model":"subscription+overage","description":"Live domain availability check across configured registrars. Free daily quota; included in paid plans.","currency":"USD","billing_url":"https://namemy.app/pricing"},"x-mpp":{"model":"subscription+overage","description":"Live domain availability check across configured registrars. Free daily quota; included in paid plans.","currency":"USD","billing_url":"https://namemy.app/pricing"}}},"/domains/buy":{"post":{"summary":"Purchase a domain","description":"Purchase a domain for one year using the user's saved payment method.\nRequires `domains:write` permission.\n\nRequires a WHOIS registrant contact: pass `contact`, or save one at\nhttps://namemy.app/app/settings first. Without either the call fails\nwith `contact_required` and lists the `missing` fields.\n\nThe flow places a hold on the saved card, provisions the domain,\nthen captures payment. If provisioning fails, the hold is released.\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string","description":"Domain to purchase","example":"taskflow.app"},"contact":{"$ref":"#/components/schemas/ContactInput"},"privacy":{"type":"boolean","default":true,"description":"Enable WHOIS privacy"},"autoRenew":{"type":"boolean","default":true},"emailForwards":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}}}}}},"examples":{"minimalBuy":{"summary":"Minimal — use saved contact","value":{"domain":"taskflow.app","privacy":true,"autoRenew":true}},"buyWithContact":{"summary":"Override registrant contact","value":{"domain":"taskflow.app","privacy":true,"autoRenew":true,"contact":{"firstName":"Alex","lastName":"Rivera","email":"alex@example.com","phone":1.41555501,"address1":"350 Fifth Ave","city":"New York","state":"NY","zip":"10118","country":"US"},"emailForwards":[{"from":"hello","to":"alex@example.com"}]}}}}}},"responses":{"200":{"description":"Purchase successful","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","example":true},"domain":{"type":"string"},"registrar":{"type":"string","example":"namemy.app"},"retailPrice":{"type":"number"},"currency":{"type":"string","example":"usd"},"paymentIntent":{"type":"string"},"provisioning":{"type":"array","items":{"type":"object","properties":{"step":{"type":"string"},"success":{"type":"boolean"},"message":{"type":"string"}}}},"elapsedMs":{"type":"integer"}}}}}},"400":{"description":"`invalid_domain`, `years_unsupported` (any `years` other than 1),\n`contact_required` (with `missing` and `hint`), `invalid_contact`\n(with `fieldErrors`), `domain_unavailable`, or\n`registration_failed` (with `provisioningSteps`; nothing charged).\n","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ApiError"},{"type":"object","properties":{"missing":{"type":"array","items":{"type":"string"}},"hint":{"type":"string"},"fieldErrors":{"type":"object","additionalProperties":{"type":"string"}},"provisioningSteps":{"type":"array"}}}]},"examples":{"contactRequired":{"value":{"error":"A WHOIS contact is required to register a domain.","code":"contact_required","missing":["phone","address1","city","state","zip","country"],"hint":"save a contact at /app/settings or pass contact{}"}},"yearsUnsupported":{"value":{"error":"Only 1-year registrations are supported. Omit years or pass 1.","code":"years_unsupported"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"description":"`payment_method_required` (no saved card) or `payment_declined`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"description":"`payment_setup_failed` (nothing was charged) or `internal_error`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"$ref":"#/components/responses/QuoteUnavailable"}},"x-payment-info":{"model":"passthrough+markup","description":"Pass-through registrar wholesale + 5% markup on popular TLDs (.com/.io/.ai/.app — minimum $0.99) and 20% on other TLDs. Renewal markup 20%/30%.","currency":"USD","billing_url":"https://namemy.app/pricing"},"x-payment":{"model":"passthrough+markup","description":"Pass-through registrar wholesale + 5% markup on popular TLDs (.com/.io/.ai/.app — minimum $0.99) and 20% on other TLDs. Renewal markup 20%/30%.","currency":"USD","billing_url":"https://namemy.app/pricing"},"x-mpp":{"model":"passthrough+markup","description":"Pass-through registrar wholesale + 5% markup on popular TLDs (.com/.io/.ai/.app — minimum $0.99) and 20% on other TLDs. Renewal markup 20%/30%.","currency":"USD","billing_url":"https://namemy.app/pricing"}}},"/api/public/sold":{"get":{"summary":"Latest agent-attributed domain conversions (public, no auth)","description":"Public, no-auth feed of the latest 50 completed BuyURL-attributed\ndomain purchases. Powers the \"Wall of Sold\" landing block. No user\nidentifiers are exposed.\n\nThis endpoint lives at the absolute path `/api/public/sold` (NOT\n`/api/v1/...`) and is rate-limited per IP.\n","security":[],"servers":[{"url":"https://namemy.app","description":"Production (public surface)"}],"responses":{"200":{"description":"Recent sold list","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SoldItem"}}}}}}},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/domains/list":{"get":{"summary":"List user's domains","description":"Returns all domains owned by the authenticated API key user.","responses":{"200":{"description":"List of domains","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer"},"domains":{"type":"array","items":{"$ref":"#/components/schemas/Domain"}}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/domains/{domain}/dns":{"parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string"},"example":"taskflow.app"}],"get":{"summary":"List DNS records","description":"Return all DNS records currently set for this domain.","responses":{"200":{"description":"DNS records","content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string"},"records":{"type":"array","items":{"$ref":"#/components/schemas/DnsRecord"}}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"summary":"Create DNS record","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DnsRecordInput"},"examples":{"pointAtVercel":{"summary":"Point root at Vercel","value":{"type":"A","host":"@","value":"76.76.21.21","ttl":300}},"addEmailMX":{"summary":"Add Google Workspace MX","value":{"type":"MX","host":"@","value":"smtp.google.com","priority":1,"ttl":3600}}}}}},"responses":{"200":{"description":"Record created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DnsRecord"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"summary":"Update DNS record","requestBody":{"required":true,"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DnsRecordInput"},{"properties":{"id":{"type":"string"}}}]}}}},"responses":{"200":{"description":"Record updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DnsRecord"}}}}}},"delete":{"summary":"Delete DNS record","parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Record deleted"}}}},"/brand-conflict":{"post":{"summary":"Check brand-name conflicts","description":"Free for all tiers (subject to daily quota). Checks USPTO trademarks,\nlive homepages, and search signals in one pass.\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","minLength":2,"maxLength":64},"context":{"type":"string","description":"Industry/product context"},"checks":{"type":"object","properties":{"trademark":{"type":"boolean","default":true},"homepage":{"type":"boolean","default":true},"search":{"type":"boolean","default":true}}}}},"examples":{"taskflow":{"value":{"name":"TaskFlow","context":"AI task manager"}}}}}},"responses":{"200":{"description":"Check result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrandConflictResult"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"}},"x-payment-info":{"model":"subscription+overage","description":"USPTO trademark conflict check. Free daily quota; included in paid plans.","currency":"USD","billing_url":"https://namemy.app/pricing"},"x-payment":{"model":"subscription+overage","description":"USPTO trademark conflict check. Free daily quota; included in paid plans.","currency":"USD","billing_url":"https://namemy.app/pricing"},"x-mpp":{"model":"subscription+overage","description":"USPTO trademark conflict check. Free daily quota; included in paid plans.","currency":"USD","billing_url":"https://namemy.app/pricing"}}},"/logos":{"post":{"summary":"Generate AI logo concepts","description":"Gated: Founder/Agency sub OR one-time LOGO_PACK/BRAND_KIT purchase.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","description"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"slogan":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":9,"default":4},"preferences":{"type":"object","properties":{"industry":{"type":"string"},"styles":{"type":"array","items":{"type":"string"}},"colorPalette":{"type":"string"}}}}}}}},"responses":{"200":{"description":"Logo concepts","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object"},"logos":{"type":"array","items":{"$ref":"#/components/schemas/LogoIdea"}}}}}}},"402":{"$ref":"#/components/responses/EntitlementRequired"},"429":{"$ref":"#/components/responses/RateLimited"}},"x-payment-info":{"model":"one-time","price_usd":19.99,"description":"One-time AI logo generation; SVG + raster.","currency":"USD","billing_url":"https://namemy.app/pricing"},"x-payment":{"model":"one-time","price_usd":19.99,"description":"One-time AI logo generation; SVG + raster.","currency":"USD","billing_url":"https://namemy.app/pricing"},"x-mpp":{"model":"one-time","price_usd":19.99,"description":"One-time AI logo generation; SVG + raster.","currency":"USD","billing_url":"https://namemy.app/pricing"}}},"/legal":{"post":{"summary":"Generate Privacy/Terms/Cookie documents","description":"Gated: Founder/Agency sub OR LEGAL_KIT purchase.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegalKitInput"}}}},"responses":{"200":{"description":"Generated legal documents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegalKitOutput"}}}},"402":{"$ref":"#/components/responses/EntitlementRequired"},"429":{"$ref":"#/components/responses/RateLimited"}},"x-payment-info":{"model":"one-time","price_usd":9.99,"description":"One-time legal kit (Privacy / Terms / Cookies).","currency":"USD","billing_url":"https://namemy.app/pricing"},"x-payment":{"model":"one-time","price_usd":9.99,"description":"One-time legal kit (Privacy / Terms / Cookies).","currency":"USD","billing_url":"https://namemy.app/pricing"},"x-mpp":{"model":"one-time","price_usd":9.99,"description":"One-time legal kit (Privacy / Terms / Cookies).","currency":"USD","billing_url":"https://namemy.app/pricing"}}},"/legal/stream":{"post":{"summary":"Streaming legal documents (Server-Sent Events)","description":"SSE variant — emits `progress` and `document` events as each doc is generated.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegalKitInput"}}}},"responses":{"200":{"description":"text/event-stream","content":{"text/event-stream":{"schema":{"type":"string"}}}}},"x-payment-info":{"model":"one-time","price_usd":9.99,"description":"Streaming variant of /legal.","currency":"USD","billing_url":"https://namemy.app/pricing"},"x-payment":{"model":"one-time","price_usd":9.99,"description":"Streaming variant of /legal.","currency":"USD","billing_url":"https://namemy.app/pricing"},"x-mpp":{"model":"one-time","price_usd":9.99,"description":"Streaming variant of /legal.","currency":"USD","billing_url":"https://namemy.app/pricing"}}},"/landing-pages":{"post":{"summary":"Generate a landing page","description":"Gated: Founder/Agency sub OR SITE_BUILDER purchase. Returns an id to pass to `/landing-pages/{id}/deploy`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LandingPageInput"}}}},"responses":{"200":{"description":"Landing page generated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LandingPageOutput"}}}},"402":{"$ref":"#/components/responses/EntitlementRequired"},"429":{"$ref":"#/components/responses/RateLimited"}},"x-payment-info":{"model":"subscription","description":"Included in Founder and Agency tiers. See pricing page for limits.","currency":"USD","billing_url":"https://namemy.app/pricing"},"x-payment":{"model":"subscription","description":"Included in Founder and Agency tiers. See pricing page for limits.","currency":"USD","billing_url":"https://namemy.app/pricing"},"x-mpp":{"model":"subscription","description":"Included in Founder and Agency tiers. See pricing page for limits.","currency":"USD","billing_url":"https://namemy.app/pricing"}}},"/landing-pages/{id}/deploy":{"post":{"summary":"Deploy a landing page","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"subdomain":{"type":"string"},"customDomain":{"type":"string"}}}}}},"responses":{"200":{"description":"Deployment result","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["deployed","failed"]},"subdomain":{"type":"string"},"deploymentUrl":{"type":"string"},"error":{"type":"string"}}}}}},"402":{"$ref":"#/components/responses/EntitlementRequired"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"x-payment-info":{"model":"subscription","description":"Deploy a generated landing page to R2-backed origin.","currency":"USD","billing_url":"https://namemy.app/pricing"},"x-payment":{"model":"subscription","description":"Deploy a generated landing page to R2-backed origin.","currency":"USD","billing_url":"https://namemy.app/pricing"},"x-mpp":{"model":"subscription","description":"Deploy a generated landing page to R2-backed origin.","currency":"USD","billing_url":"https://namemy.app/pricing"}}},"/brand-kits":{"post":{"summary":"Generate a complete brand kit","description":"Gated: Founder/Agency sub OR BRAND_KIT purchase.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"industry":{"type":"string"},"description":{"type":"string"},"includeVisuals":{"type":"boolean","default":true}}}}}},"responses":{"200":{"description":"Brand kit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrandKitOutput"}}}},"402":{"$ref":"#/components/responses/EntitlementRequired"},"429":{"$ref":"#/components/responses/RateLimited"}},"x-payment-info":{"model":"one-time","price_usd":29.99,"description":"One-time brand kit (logo + colors + typography + social headers).","currency":"USD","billing_url":"https://namemy.app/pricing"},"x-payment":{"model":"one-time","price_usd":29.99,"description":"One-time brand kit (logo + colors + typography + social headers).","currency":"USD","billing_url":"https://namemy.app/pricing"},"x-mpp":{"model":"one-time","price_usd":29.99,"description":"One-time brand kit (logo + colors + typography + social headers).","currency":"USD","billing_url":"https://namemy.app/pricing"}}},"/brand-kits/{id}/exports":{"get":{"summary":"List available export destinations for a brand kit","description":"Returns every registered exporter (DTCG, Tailwind, shadcn, Figma\nTokens Studio, WordPress theme.json, Webflow CSV, Framer overrides,\nMailchimp-ready email HTML, Notion, ASE, CMYK+Pantone, and more)\nwith the per-format last-run state for this kit.\n","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"List of formats","content":{"application/json":{"schema":{"type":"object","properties":{"brandKitId":{"type":"string"},"formats":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"category":{"type":"string"},"status":{"type":"string","enum":["stable","beta","stub"]},"description":{"type":"string"},"destinations":{"type":"array","items":{"type":"string"}},"latest":{"type":"object","nullable":true,"properties":{"url":{"type":"string"},"sha256":{"type":"string"},"bytes":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"}}}}}}}}}}}}}},"/brand-kits/{id}/exports/{format}":{"post":{"summary":"Run one exporter against a brand kit","description":"Idempotent — re-running with unchanged inputs returns the same\nsha256-keyed R2 URL without re-uploading. `format` must be one of\nthe ids returned by GET `/brand-kits/{id}/exports`.\n","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"format","required":true,"schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"opts":{"type":"object","additionalProperties":true}}}}}},"responses":{"200":{"description":"Cached export (no upload performed)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrandKitExportResult"}}}},"201":{"description":"Newly generated export","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrandKitExportResult"}}}},"402":{"$ref":"#/components/responses/EntitlementRequired"},"404":{"description":"Unknown brand kit or format"},"429":{"$ref":"#/components/responses/RateLimited"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"nma_live_","description":"API key prefixed with `nma_live_`"},"sessionAuth":{"type":"apiKey","in":"cookie","name":"next-auth.session-token","description":"Session cookie from namemy.app dashboard login"}},"schemas":{"ApiKey":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"keyPrefix":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"}},"rateLimit":{"type":"integer"},"lastUsedAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"isActive":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"}}},"ApiKeyWithSecret":{"allOf":[{"$ref":"#/components/schemas/ApiKey"},{"type":"object","properties":{"key":{"type":"string","description":"Full API key (shown only once)"}}}]},"NameResult":{"type":"object","properties":{"name":{"type":"string","description":"The generated brand name"},"domains":{"type":"array","items":{"type":"object","properties":{"tld":{"type":"string"},"available":{"type":"boolean"},"price":{"type":"number"},"currency":{"type":"string"}}}},"rationale":{"type":"string","description":"Why this name fits the description"}}},"BestPrice":{"type":"object","required":["registrar","retailPrice","retailRenewal","currency"],"properties":{"registrar":{"type":"string","enum":["namemy.app"],"description":"Always namemy.app, the registrar of record you pay"},"retailPrice":{"type":"number","description":"First-year price charged, in `currency`","example":14.69},"retailRenewal":{"type":"number","description":"Yearly renewal price","example":16.79},"currency":{"type":"string","example":"usd"}}},"DomainCheckResult":{"type":"object","required":["domain","available","bestPrice","buyUrl"],"properties":{"domain":{"type":"string"},"available":{"type":"boolean"},"isPremium":{"type":"boolean","description":"Present and true for premium-tier domains; still purchasable at `retailPrice`"},"bestPrice":{"$ref":"#/components/schemas/BestPrice"},"buyUrl":{"type":"string","description":"One-click checkout link; `null` when the domain is taken. Normally a\nshort `/buy/<token>` link; falls back to a `/checkout?...` link.\n"},"proposalToken":{"type":"string","description":"Token in the short buyUrl"},"expiresAt":{"type":"string","format":"date-time","description":"When the short buyUrl's held price expires"}}},"ApiError":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string","description":"Human-readable message"},"code":{"type":"string","description":"Stable machine-readable code; see /docs/errors"}}},"SoldItem":{"type":"object","required":["domain","agent","soldAt","tld"],"properties":{"domain":{"type":"string","example":"codeflow.ai"},"agent":{"type":"string","description":"Attribution label captured at BuyURL mint time","example":"chatgpt-gpt"},"soldAt":{"type":"string","format":"date-time"},"tld":{"type":"string","example":".ai"},"priceUsd":{"type":"number","example":11.87}}},"ContactInput":{"type":"object","properties":{"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"address1":{"type":"string"},"address2":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"zip":{"type":"string"},"country":{"type":"string","description":"2-letter ISO code"},"organization":{"type":"string"}}},"Domain":{"type":"object","properties":{"name":{"type":"string"},"status":{"type":"string","enum":["active","expired","pending"]},"expiresAt":{"type":"string","format":"date-time"},"autoRenew":{"type":"boolean"},"privacyEnabled":{"type":"boolean"},"ownershipType":{"type":"string","enum":["owned","connected","transferred"]},"purchasePrice":{"type":"number"},"renewalPrice":{"type":"number"},"nameservers":{"type":"array","items":{"type":"string"}},"dnsProvider":{"type":"string"},"dnsRecords":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"host":{"type":"string"},"value":{"type":"string"},"ttl":{"type":"integer"}}}},"emailForwards":{"type":"array","items":{"type":"object","properties":{"alias":{"type":"string"},"forwardTo":{"type":"string"},"status":{"type":"string"}}}}}},"DnsRecord":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["A","AAAA","CNAME","MX","TXT","NS","SRV","CAA"]},"host":{"type":"string","example":"@"},"value":{"type":"string","example":"76.76.21.21"},"ttl":{"type":"integer","example":300},"priority":{"type":"integer","nullable":true}}},"DnsRecordInput":{"type":"object","required":["type","host","value"],"properties":{"type":{"type":"string","enum":["A","AAAA","CNAME","MX","TXT","NS","SRV","CAA"]},"host":{"type":"string"},"value":{"type":"string"},"ttl":{"type":"integer","default":300},"priority":{"type":"integer"}}},"BrandConflictResult":{"type":"object","properties":{"name":{"type":"string"},"status":{"type":"string","enum":["clear","warning","conflict"]},"severity":{"type":"string","enum":["clear","low","medium","high"]},"conflicts":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","example":"trademark"},"detail":{"type":"string"},"severity":{"type":"string","enum":["high","medium","low"]}}}}}},"LogoIdea":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"slogan":{"type":"string"},"icon":{"type":"string","description":"Lucide icon name (kebab-case)"},"palette":{"type":"object","properties":{"primary":{"type":"string"},"secondary":{"type":"string"},"background":{"type":"string"},"text":{"type":"string"}}},"typography":{"type":"object","properties":{"fontFamily":{"type":"string"},"weight":{"type":"string"},"style":{"type":"string"}}},"layout":{"type":"string","enum":["icon-left","icon-top","icon-right","minimal","icon-bg-shape","badge","stacked-centered"]}}},"LegalKitInput":{"type":"object","required":["businessName","businessType"],"properties":{"businessName":{"type":"string"},"businessType":{"type":"string","description":"saas | ecommerce | agency | marketplace | …"},"websiteUrl":{"type":"string"},"contactEmail":{"type":"string"},"headquartersCountry":{"type":"string","example":"US"},"headquartersState":{"type":"string","example":"CA"},"regions":{"type":"array","items":{"type":"string","enum":["gdpr","ccpa","lgpd"]},"default":["gdpr","ccpa"]}}},"LegalKitOutput":{"type":"object","properties":{"documents":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["terms","privacy","cookie","refund","aup","dmca"]},"title":{"type":"string"},"content":{"type":"string"},"lastUpdated":{"type":"string"},"wordCount":{"type":"integer"}}}},"metadata":{"type":"object","properties":{"businessName":{"type":"string"},"businessType":{"type":"string"},"regions":{"type":"array","items":{"type":"string"}}}}}},"LandingPageInput":{"type":"object","required":["businessName","industry","description"],"properties":{"businessName":{"type":"string"},"industry":{"type":"string"},"description":{"type":"string"},"targetAudience":{"type":"string"},"uniqueValue":{"type":"string"},"theme":{"type":"string","enum":["default","dark","minimal"]},"ctaText":{"type":"string"},"ctaUrl":{"type":"string"},"includePricing":{"type":"boolean"},"includeTestimonials":{"type":"boolean"},"includeFAQ":{"type":"boolean"}}},"LandingPageOutput":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["ready","deployed","failed"]},"name":{"type":"string"},"industry":{"type":"string"},"files":{"type":"array","items":{"type":"object","required":["path","content"],"properties":{"path":{"type":"string","description":"Relative file path inside the generated site bundle","example":"index.html"},"content":{"type":"string","description":"File contents (UTF-8 text for HTML/CSS/JS)"}}}},"config":{"type":"object","description":"Declarative landing-page config consumed by the deployer","properties":{"theme":{"type":"string","enum":["default","dark","minimal"]},"hero":{"type":"object","properties":{"headline":{"type":"string"},"subheadline":{"type":"string"},"primaryCta":{"type":"string"},"primaryCtaUrl":{"type":"string"}}},"sections":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["hero","features","pricing","testimonials","faq","cta","footer"]},"heading":{"type":"string"},"body":{"type":"string"}}}},"seo":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"canonical":{"type":"string"}}}}},"preview":{"type":"string","description":"Preview URL for the generated page (pre-deploy)"},"deployUrl":{"type":"string","description":"Endpoint to POST to in order to deploy: /api/v1/landing-pages/{id}/deploy"}}},"BrandKitOutput":{"type":"object","description":"Complete brand kit returned by POST /brand-kits","properties":{"essentials":{"type":"object","properties":{"name":{"type":"string"},"tagline":{"type":"string"},"missionStatement":{"type":"string"},"valueProposition":{"type":"string"}}},"audience":{"type":"object","properties":{"primarySegment":{"type":"string"},"painPoints":{"type":"array","items":{"type":"string"}},"jobsToBeDone":{"type":"array","items":{"type":"string"}}}},"personality":{"type":"object","properties":{"archetype":{"type":"string"},"traits":{"type":"array","items":{"type":"string"}},"voiceTone":{"type":"string"}}},"visualIdentity":{"type":"object","properties":{"colorPalette":{"type":"object","properties":{"primary":{"type":"string","example":"#0F172A"},"secondary":{"type":"string"},"accent":{"type":"string"},"neutral":{"type":"array","items":{"type":"string"}}}},"typography":{"type":"object","properties":{"headingFont":{"type":"string"},"bodyFont":{"type":"string"},"scale":{"type":"string"}}},"logoGuidelines":{"type":"object","properties":{"clearSpace":{"type":"string"},"minSize":{"type":"string"}}}}},"voiceTone":{"type":"object","properties":{"voicePrinciples":{"type":"array","items":{"type":"string"}},"doSay":{"type":"array","items":{"type":"string"}},"dontSay":{"type":"array","items":{"type":"string"}}}},"imagery":{"type":"object","properties":{"style":{"type":"string"},"moodKeywords":{"type":"array","items":{"type":"string"}}}},"applications":{"type":"object","properties":{"website":{"type":"string"},"socialMedia":{"type":"string"},"email":{"type":"string"}}},"dosDonts":{"type":"object","properties":{"dos":{"type":"array","items":{"type":"string"}},"donts":{"type":"array","items":{"type":"string"}}}},"visualAssets":{"type":"object","description":"Present only when `includeVisuals=true`","nullable":true}}},"BrandKitExportResult":{"type":"object","required":["format","url","sha256","mime","bytes","filename","fromCache"],"description":"Single artifact emitted by the composable exporter registry.","properties":{"format":{"type":"string"},"url":{"type":"string","format":"uri"},"sha256":{"type":"string"},"mime":{"type":"string"},"bytes":{"type":"integer"},"filename":{"type":"string"},"fromCache":{"type":"boolean","description":"True when the result was returned from the BrandKitExport ledger without re-uploading."}}},"WebhookEvent":{"type":"object","description":"Base envelope for every webhook event. The `data` shape depends on\n`type` — see schemas `DomainRegisteredEventData`, `DomainExpiringEventData`,\n`DomainExpiredEventData`, `SubscriptionCreatedEventData`,\n`SubscriptionCanceledEventData`, and `CheckoutCompletedEventData`.\n","required":["id","type","created_at","data"],"properties":{"id":{"type":"string","example":"evt_01HMZ8BQ2XWN9G0K6C3FX9E1R7","description":"Unique event id; useful as an idempotency key."},"type":{"type":"string","example":"domain.registered","enum":["domain.registered","domain.expiring","domain.expired","subscription.created","subscription.canceled","checkout.completed"]},"created_at":{"type":"string","format":"date-time"},"livemode":{"type":"boolean","description":"true in production, false in sandbox."},"api_version":{"type":"string","example":"1.0.0"},"data":{"oneOf":[{"$ref":"#/components/schemas/DomainRegisteredEventData"},{"$ref":"#/components/schemas/DomainExpiringEventData"},{"$ref":"#/components/schemas/DomainExpiredEventData"},{"$ref":"#/components/schemas/SubscriptionCreatedEventData"},{"$ref":"#/components/schemas/SubscriptionCanceledEventData"},{"$ref":"#/components/schemas/CheckoutCompletedEventData"}]}}},"DomainRegisteredEventData":{"type":"object","required":["domainId","domain","userId","registrar","expiresAt"],"properties":{"domainId":{"type":"string","description":"Internal Domain.id"},"domain":{"type":"string","example":"taskflow.app"},"userId":{"type":"string"},"registrar":{"type":"string","example":"dynadot"},"registeredAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"years":{"type":"integer","example":1},"retailPrice":{"type":"number","example":14.99},"currency":{"type":"string","example":"USD"},"autoRenew":{"type":"boolean"},"privacyEnabled":{"type":"boolean"},"nameservers":{"type":"array","items":{"type":"string"}}}},"DomainExpiringEventData":{"type":"object","required":["domainId","domain","userId","expiresAt","daysUntilExpiry"],"properties":{"domainId":{"type":"string"},"domain":{"type":"string"},"userId":{"type":"string"},"expiresAt":{"type":"string","format":"date-time"},"daysUntilExpiry":{"type":"integer","description":"30, 7, or 1 — matches the reminder cadence","enum":[30,7,1]},"autoRenew":{"type":"boolean"},"renewalPrice":{"type":"number"},"currency":{"type":"string","example":"USD"}}},"DomainExpiredEventData":{"type":"object","required":["domainId","domain","userId","expiredAt"],"properties":{"domainId":{"type":"string"},"domain":{"type":"string"},"userId":{"type":"string"},"expiredAt":{"type":"string","format":"date-time"},"gracePeriodEnds":{"type":"string","format":"date-time","description":"End of registrar grace period; after this the domain can be lost."}}},"SubscriptionCreatedEventData":{"type":"object","required":["subscriptionId","userId","planId","status","currentPeriodEnd"],"properties":{"subscriptionId":{"type":"string","description":"Stripe subscription id"},"userId":{"type":"string"},"planId":{"type":"string","example":"founder_monthly","description":"Prefixed with `founder_` or `agency_` — consumers can branch on the prefix."},"status":{"type":"string","enum":["active","trialing"]},"currentPeriodStart":{"type":"string","format":"date-time"},"currentPeriodEnd":{"type":"string","format":"date-time"},"cancelAtPeriodEnd":{"type":"boolean","default":false}}},"SubscriptionCanceledEventData":{"type":"object","required":["subscriptionId","userId","canceledAt"],"properties":{"subscriptionId":{"type":"string"},"userId":{"type":"string"},"planId":{"type":"string"},"canceledAt":{"type":"string","format":"date-time"},"reason":{"type":"string","enum":["user_requested","payment_failed","stripe_canceled","admin"],"nullable":true}}},"CheckoutCompletedEventData":{"type":"object","description":"Fired on one-time add-on / Launch Stack purchase completion.","required":["checkoutSessionId","userId","productType","amount"],"properties":{"checkoutSessionId":{"type":"string"},"userId":{"type":"string"},"productType":{"type":"string","example":"LAUNCH_STACK","description":"LAUNCH_STACK | LOGO_PACK | BRAND_KIT | LEGAL_KIT | SOCIAL_MEDIA_KIT | SITE_BUILDER | EMAIL_FORWARDING_SLOT"},"amount":{"type":"number","example":99},"currency":{"type":"string","example":"USD"},"paymentIntentId":{"type":"string"},"completedAt":{"type":"string","format":"date-time"}}}},"responses":{"Unauthorized":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Unauthorized"}}}}}},"Forbidden":{"description":"Valid key but missing required permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Forbidden"}}}}}},"BadRequest":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"InternalError":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Internal server error"}}}}}},"QuoteUnavailable":{"description":"`quote_unavailable`: no registrar price right now. Retry shortly.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"},"example":{"error":"No price quote available for this domain right now. Retry shortly.","code":"quote_unavailable","domain":"taskflow.app"}}}},"NotFound":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Not found"},"code":{"type":"string","example":"not_found"}}}}}},"RateLimited":{"description":"Rate limit or daily quota exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"X-Daily-Limit":{"schema":{"type":"integer"}},"X-Daily-Remaining":{"schema":{"type":"integer"}},"X-Daily-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","enum":["rate_limit_exceeded","daily_quota_exceeded"]},"tier":{"type":"string","enum":["explorer","founder","agency"]},"limit":{"type":"integer"},"upgrade":{"type":"string","example":"https://namemy.app/pricing"}}}}}},"EntitlementRequired":{"description":"Payment required — endpoint gated by subscription or one-time add-on","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Payment required"},"code":{"type":"string","example":"entitlement_required"},"productType":{"type":"string","example":"BRAND_KIT"},"productName":{"type":"string","example":"Brand Kit"},"oneTimePrice":{"type":"number","example":29.99},"recurring":{"type":"string","enum":["one-time","monthly","yearly"]},"message":{"type":"string"},"upgrade":{"type":"object","properties":{"subscription":{"type":"string"},"oneTimePurchase":{"type":"string"}}}}}}}}}},"webhooks":{"domain.registered":{"post":{"summary":"Domain successfully registered","description":"Fired when a domain purchase completes and provisioning succeeds.\nThe event is delivered at-least-once — dedupe using `id`.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/WebhookEvent"},{"type":"object","properties":{"type":{"type":"string","enum":["domain.registered"]},"data":{"$ref":"#/components/schemas/DomainRegisteredEventData"}}}]},"examples":{"registered":{"value":{"id":"evt_01HMZ8BQ2XWN9G0K6C3FX9E1R7","type":"domain.registered","created_at":"2026-04-23T14:22:18Z","livemode":true,"api_version":"1.0.0","data":{"domainId":"dom_abc123","domain":"taskflow.app","userId":"user_abc","registrar":"dynadot","registeredAt":"2026-04-23T14:22:17Z","expiresAt":"2027-04-23T14:22:17Z","years":1,"retailPrice":14.99,"currency":"USD","autoRenew":true,"privacyEnabled":true}}}}}}},"responses":{"200":{"description":"Acknowledged — return 2xx to prevent retries."}}}},"domain.expiring":{"post":{"summary":"Domain expiring soon (30 / 7 / 1 day warnings)","description":"Fired on the domain-expiry cron (`nma-cron-sync` + email tick).\n`daysUntilExpiry` is always one of `30`, `7`, or `1`.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/WebhookEvent"},{"type":"object","properties":{"type":{"type":"string","enum":["domain.expiring"]},"data":{"$ref":"#/components/schemas/DomainExpiringEventData"}}}]}}}},"responses":{"200":{"description":"Acknowledged"}}}},"domain.expired":{"post":{"summary":"Domain has expired","description":"Fired when the domain crosses its `expiresAt` without renewal.\nGrace-period recovery still possible until `data.gracePeriodEnds`.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/WebhookEvent"},{"type":"object","properties":{"type":{"type":"string","enum":["domain.expired"]},"data":{"$ref":"#/components/schemas/DomainExpiredEventData"}}}]}}}},"responses":{"200":{"description":"Acknowledged"}}}},"subscription.created":{"post":{"summary":"New Founder or Agency subscription started","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/WebhookEvent"},{"type":"object","properties":{"type":{"type":"string","enum":["subscription.created"]},"data":{"$ref":"#/components/schemas/SubscriptionCreatedEventData"}}}]}}}},"responses":{"200":{"description":"Acknowledged"}}}},"subscription.canceled":{"post":{"summary":"Subscription canceled","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/WebhookEvent"},{"type":"object","properties":{"type":{"type":"string","enum":["subscription.canceled"]},"data":{"$ref":"#/components/schemas/SubscriptionCanceledEventData"}}}]}}}},"responses":{"200":{"description":"Acknowledged"}}}},"checkout.completed":{"post":{"summary":"One-time add-on purchase completed","description":"Fired when a one-time Launch Stack or add-on Stripe Checkout session\nreaches `complete`. Entitlements are granted before this fires.\n","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/WebhookEvent"},{"type":"object","properties":{"type":{"type":"string","enum":["checkout.completed"]},"data":{"$ref":"#/components/schemas/CheckoutCompletedEventData"}}}]}}}},"responses":{"200":{"description":"Acknowledged"}}}}},"x-payment-info":{"provider":"namemyapp","currency":"USD","billing_url":"https://namemy.app/pricing","catalog_url":"https://namemy.app/api/openapi.json","pricing_models_supported":["subscription","subscription+overage","one-time","passthrough+markup"]},"x-mpp":{"version":"1.0","provider":"namemyapp","currency":"USD","billing_url":"https://namemy.app/pricing","catalog_url":"https://namemy.app/api/openapi.json"}}