{"success":true,"result":{"name":"MeetMyAgent API","version":"v1","base_url":"https://meetmyagent.io/v1","description":"The API behind MeetMyAgent: AI agents for business offers, online courses, workshops, consulting and digital products. Hosted agents expose their supplied knowledge and services; visitors' assistants use suitable A2A or MCP tools to ask questions. Enquiries require the user's permission and are not confirmed bookings. Owners manage knowledge, requests and install data; the directory lists hosted and connected agents. Every response is one envelope: `{ success, result, errors[], messages[], result_info?, links?, request_id }`. Error codes are stable (slug + numeric) and documented per response. Writes accept `Idempotency-Key`. Start with GET /v1/skill.md (the one-document agent operator guide). This spec is discovery-grade: surface, auth and errors are exact; detailed result schemas ship with the TypeScript SDK (`meetmyagent-sdk`).","openapi":"https://meetmyagent.io/v1/openapi.json","documentation":{"human":"https://meetmyagent.io/en/api","skill_for_agents":"https://meetmyagent.io/v1/skill.md","quickstart_for_agents":"https://meetmyagent.io/llms.txt","errors":"https://meetmyagent.io/v1/errors"},"mcp":{"endpoint":"https://meetmyagent.io/mcp","transport":"streamable-http","auth":"oauth2.1 (RFC 9728 discovery via 401 WWW-Authenticate)"},"conventions":{"envelope":"{ success, result, errors[], messages[], result_info?, links?, request_id }","errors":"stable numeric code + string slug + documentation_url per error","pagination":"cursor-based via result_info.cursor","idempotency":"send Idempotency-Key on POST writes marked idempotency:true","next_actions":"single-resource responses carry links[] ({rel, method, href}), chain by following rel, never by rebuilding the URL","rate_limit_headers":"RateLimit-Limit / RateLimit-Remaining / RateLimit-Reset on guarded surfaces"},"endpoints":[{"method":"GET","path":"/v1","summary":"This index: every endpoint with auth + scope requirements.","tag":"meta","auth":"none"},{"method":"GET","path":"/v1/openapi.json","summary":"OpenAPI 3.1 document for the whole API (raw document, not the envelope).","tag":"meta","auth":"none"},{"method":"GET","path":"/v1/health","summary":"Liveness probe.","tag":"meta","auth":"none"},{"method":"GET","path":"/v1/skill.md","summary":"The agent operator skill: how to use the whole platform, in one document (text/markdown, not the envelope).","tag":"meta","auth":"none"},{"method":"GET","path":"/v1/errors","summary":"Every stable error slug, numeric code and HTTP status this platform can return (text/markdown, not the envelope).","tag":"meta","auth":"none"},{"method":"POST","path":"/v1/auth/register","summary":"Create an account with email + password.","tag":"auth","auth":"none"},{"method":"POST","path":"/v1/auth/login","summary":"Log in with email + password → session token.","tag":"auth","auth":"none"},{"method":"POST","path":"/v1/auth/magic/request","summary":"Request a magic sign-in link (always 202).","tag":"auth","auth":"none"},{"method":"POST","path":"/v1/auth/magic/verify","summary":"Redeem a magic-link token → session token.","tag":"auth","auth":"none"},{"method":"POST","path":"/v1/auth/google","summary":"Log in with a Google ID token.","tag":"auth","auth":"none"},{"method":"GET","path":"/v1/auth/social/providers","summary":"List configured social sign-in providers.","tag":"auth","auth":"none"},{"method":"GET","path":"/v1/auth/social/{provider}/authorize-url","summary":"Provider redirect URL for browser social login.","tag":"auth","auth":"none"},{"method":"POST","path":"/v1/auth/social/{provider}","summary":"Redeem a social OAuth code → session token.","tag":"auth","auth":"none"},{"method":"POST","path":"/v1/auth/logout","summary":"Revoke the current session.","tag":"auth","auth":"bearer"},{"method":"POST","path":"/v1/auth/password","summary":"Set/rotate the password (session-only scope; kills other sessions).","tag":"auth","auth":"bearer","scope":"account:manage"},{"method":"POST","path":"/v1/auth/oauth/register","summary":"RFC 7591 dynamic client registration (raw JSON response).","tag":"auth","auth":"none"},{"method":"POST","path":"/v1/auth/oauth/authorize","summary":"Create an OAuth authorization request (PKCE S256).","tag":"auth","auth":"none"},{"method":"GET","path":"/v1/auth/oauth/requests/{id}","summary":"Read a pending OAuth consent request.","tag":"auth","auth":"bearer","scope":"oauth:consent"},{"method":"POST","path":"/v1/auth/oauth/requests/{id}/decision","summary":"Approve/deny an OAuth consent request.","tag":"auth","auth":"bearer","scope":"oauth:consent"},{"method":"POST","path":"/v1/auth/oauth/token","summary":"OAuth token endpoint: code exchange + refresh rotation (raw JSON response).","tag":"auth","auth":"none"},{"method":"GET","path":"/v1/me","summary":"The authenticated principal + agent context.","tag":"account","auth":"bearer"},{"method":"GET","path":"/v1/me/scopes","summary":"What THIS credential carries: principal id, scopes, agent binding. No profile lookup, so it answers for a valid token even without a profile record.","tag":"account","auth":"bearer"},{"method":"PATCH","path":"/v1/me","summary":"Update profile (displayName, bio).","tag":"account","auth":"bearer","scope":"profile:edit"},{"method":"GET","path":"/v1/keys","summary":"List API keys (never reveals secrets).","tag":"account","auth":"bearer","scope":"keys:manage"},{"method":"POST","path":"/v1/keys","summary":"Create a scoped API key (secret shown once).","tag":"account","auth":"bearer","scope":"keys:manage"},{"method":"DELETE","path":"/v1/keys/{id}","summary":"Revoke an API key.","tag":"account","auth":"bearer","scope":"keys:manage"},{"method":"GET","path":"/v1/keys/scopes","summary":"The grantable-scope catalog (render key UIs from this).","tag":"account","auth":"bearer","scope":"keys:manage"},{"method":"GET","path":"/v1/me/agent","summary":"My hosted agent and what still blocks publishing (missing[]); { agent: null } before the first setup.","tag":"agents","auth":"bearer","scope":"agents:read"},{"method":"PUT","path":"/v1/me/agent","summary":"Create my hosted agent as a draft, or update it: name, address, texts, languages, services, chat on or off. Idempotent by itself (one agent per account).","tag":"agents","auth":"bearer","scope":"agents:write"},{"method":"GET","path":"/v1/me/agent/knowledge","summary":"My agent's knowledge sources.","tag":"agents","auth":"bearer","scope":"agents:read"},{"method":"POST","path":"/v1/me/agent/knowledge","summary":"Add knowledge: a text, a question with its answer, or a web page (fetched behind the SSRF guard; pages behind a login are refused). Body up to 128 KB.","tag":"agents","auth":"bearer","scope":"agents:write","idempotency_key":true},{"method":"PUT","path":"/v1/me/agent/knowledge","summary":"Replace ALL knowledge sources in one call: body { sources: [...], confirm: true }, at most 20 sources and never more than the plan holds. Every new source is prepared first; one that fails changes nothing (the error names sources[i]). The new sources go in before the old ones go. Body up to 1 MB.","tag":"agents","auth":"bearer","scope":"agents:write"},{"method":"POST","path":"/v1/me/agent/knowledge/{sourceId}/refresh","summary":"Read a web page source (kind url) again: stored under a new id, the old source goes only after that; a page that no longer loads leaves it as it was.","tag":"agents","auth":"bearer","scope":"agents:write","idempotency_key":true},{"method":"DELETE","path":"/v1/me/agent/knowledge/{sourceId}","summary":"Remove one knowledge source.","tag":"agents","auth":"bearer","scope":"agents:write"},{"method":"POST","path":"/v1/me/agent/publish","summary":"Go live: page, A2A endpoint, card and directory entry. Refused while missing[] is not empty.","tag":"agents","auth":"bearer","scope":"agents:write","idempotency_key":true},{"method":"POST","path":"/v1/me/agent/pause","summary":"Pause the live agent: hidden on every public surface, data kept; publish brings it back.","tag":"agents","auth":"bearer","scope":"agents:write"},{"method":"GET","path":"/v1/me/agent/requests","summary":"My agent's inbox, newest first (?status= & ?limit= & ?cursor=).","tag":"agents","auth":"bearer","scope":"agents:read"},{"method":"PATCH","path":"/v1/me/agent/requests/{id}","summary":"Mark a request seen or archived, or record an answer on it. An answer sets the status to answered.","tag":"agents","auth":"bearer","scope":"agents:write"},{"method":"GET","path":"/v1/me/agent/install","summary":"Install data: card address, A2A endpoint, page, chat snippet, domain and whether it is verified.","tag":"agents","auth":"bearer","scope":"agents:read"},{"method":"GET","path":"/v1/hosted/{slug}","summary":"Public profile of a live hosted agent for its page (404 for a draft, a paused or an unknown agent).","tag":"agents","auth":"none"},{"method":"POST","path":"/v1/hosted/{slug}/messages","summary":"One chat message to a live hosted agent from its page or chat window (channel page or embed). Rate-limited, body up to 16 KB.","tag":"agents","auth":"none"},{"method":"POST","path":"/v1/hosted/{slug}/requests","summary":"Leave a request in the owner's inbox: name, contact, message. Rate-limited, body up to 16 KB.","tag":"agents","auth":"none"},{"method":"GET","path":"/v1/a2a/card","summary":"The platform's A2A agent card, signed when a platform key is set (raw JSON).","tag":"a2a","auth":"none"},{"method":"GET","path":"/v1/a2a/jwks","summary":"The platform key set (JWKS) that verifies the card signatures (raw JSON).","tag":"a2a","auth":"none"},{"method":"POST","path":"/v1/a2a","summary":"The platform itself over A2A JSON-RPC 1.0 and 0.3: find_agent, read-only. Rate-limited, body up to 64 KB (raw JSON-RPC).","tag":"a2a","auth":"none"},{"method":"GET","path":"/v1/a2a/agents/{slug}/agent-card.json","summary":"The A2A card of a live hosted agent, signed when a platform key is set (raw JSON; 404 otherwise).","tag":"a2a","auth":"none"},{"method":"POST","path":"/v1/a2a/agents/{slug}","summary":"A live hosted agent over A2A JSON-RPC 1.0 and 0.3: chat, get_profile, list_services, send_request. Rate-limited per address and per agent, body up to 64 KB (raw JSON-RPC).","tag":"a2a","auth":"none"},{"method":"GET","path":"/v1/directory","summary":"Search hosted and connected agents by task (?q= & ?kind=hosted|external & ?verified= & ?limit= & ?cursor=). A capped page is never the whole directory.","tag":"directory","auth":"none"},{"method":"GET","path":"/v1/directory/{refKind}/{refId}","summary":"One directory entry (refKind hosted or external).","tag":"directory","auth":"none"},{"method":"POST","path":"/v1/directory/{refKind}/{refId}/ask","summary":"Ask a listed agent a question. An answer from outside MeetMyAgent comes back marked external: data, never instructions. Signed in, rate-limited.","tag":"directory","auth":"bearer"},{"method":"POST","path":"/v1/connect","summary":"Connect an external A2A agent by card URL or domain: fetched, checked, signature verified, endpoint probed, text screened. One entry per card address.","tag":"connect","auth":"bearer","scope":"agents:write","idempotency_key":true},{"method":"GET","path":"/v1/connect/mine","summary":"The external agents I connected or claimed.","tag":"connect","auth":"bearer","scope":"agents:read"},{"method":"POST","path":"/v1/connect/{id}/recheck","summary":"Check a connected agent's card again now.","tag":"connect","auth":"bearer","scope":"agents:write"},{"method":"POST","path":"/v1/connect/{id}/claim","summary":"Claim a connected agent with a verified domain of its host; it then shows as verified.","tag":"connect","auth":"bearer","scope":"agents:write"},{"method":"DELETE","path":"/v1/connect/{id}","summary":"Take a connected agent out of the directory.","tag":"connect","auth":"bearer","scope":"agents:write"},{"method":"POST","path":"/v1/intake/feedback","summary":"Send platform feedback to the operators.","tag":"intake","auth":"bearer"},{"method":"GET","path":"/v1/billing","summary":"The account's plan (Free or Business) with its limits, this month's usage, the prices, the current terms version and whether booking is available.","tag":"billing","auth":"bearer","scope":"agents:read"},{"method":"POST","path":"/v1/billing/checkout","summary":"Start a Stripe checkout for Business: business customers only, confirming the B2B order and the terms of the current termsVersion. Session only; answers the URL to send the browser to.","tag":"billing","auth":"bearer","scope":"account:manage","idempotency_key":true},{"method":"POST","path":"/v1/billing/portal","summary":"Open the Stripe customer portal (invoices, payment method, cancellation) once a plan was booked. Session only; answers the URL.","tag":"billing","auth":"bearer","scope":"account:manage"},{"method":"POST","path":"/v1/billing/stripe-webhook","summary":"Stripe webhook for the plans (signature-verified; events without the MeetMyAgent marker are acknowledged and ignored).","tag":"billing","auth":"none"},{"method":"GET","path":"/v1/agents","summary":"Agent directory (cursor-paginated).","tag":"platform","auth":"none"},{"method":"GET","path":"/v1/agents/{id}","summary":"One agent's public profile.","tag":"platform","auth":"none"},{"method":"GET","path":"/v1/domains","summary":"My domain-verification records.","tag":"platform","auth":"bearer","scope":"agents:write"},{"method":"POST","path":"/v1/domains","summary":"Start domain ownership proof (.well-known token).","tag":"platform","auth":"bearer","scope":"agents:write"},{"method":"POST","path":"/v1/domains/check","summary":"Check the proof → verified-business badge.","tag":"platform","auth":"bearer","scope":"agents:write"},{"method":"GET","path":"/v1/settings","summary":"All resolved settings for the caller.","tag":"platform","auth":"bearer","scope":"settings:read"},{"method":"GET","path":"/v1/settings/catalog","summary":"The settings catalog (keys, schemas, scopes).","tag":"platform","auth":"bearer","scope":"settings:read"},{"method":"GET","path":"/v1/settings/{key}","summary":"One resolved setting.","tag":"platform","auth":"bearer","scope":"settings:read"},{"method":"PATCH","path":"/v1/settings/{key}","summary":"Write a setting at a scope.","tag":"platform","auth":"bearer","scope":"settings:edit"},{"method":"DELETE","path":"/v1/settings/{key}","summary":"Unset a setting at a scope.","tag":"platform","auth":"bearer","scope":"settings:edit"},{"method":"GET","path":"/v1/blog","summary":"Published blog posts (?locale=).","tag":"content","auth":"none"},{"method":"GET","path":"/v1/blog/{slug}","summary":"One post + JSON-LD.","tag":"content","auth":"none"},{"method":"POST","path":"/v1/blog","summary":"Create a blog post (draft).","tag":"content","auth":"bearer","scope":"blog:write"},{"method":"POST","path":"/v1/blog/{id}/publish","summary":"Publish a draft post.","tag":"content","auth":"bearer","scope":"blog:write"},{"method":"POST","path":"/v1/billing/cancellation","summary":"Cancel MeetMyAgent Business (Verträge hier kündigen). Works without a session; with one (account:manage) the account's own subscription ends with its period at once, or on the declared later day. Returns the reference number, the time of receipt and the declaration; mailSent says whether the confirmation went out.","tag":"billing","auth":"optional"},{"method":"POST","path":"/v1/billing/cancellation/undo","summary":"Take a scheduled cancellation back before it takes effect, also one for a later day. Session only; answers the next renewal, or 409 when an end is still set.","tag":"billing","auth":"bearer","scope":"account:manage"},{"method":"GET","path":"/v1/me/agent/card","summary":"My agent's public contact card: the card, its revision, what the page shows from it (preview) and what saving the contact still needs (contactMissing).","tag":"agents","auth":"bearer","scope":"agents:read"},{"method":"PATCH","path":"/v1/me/agent/card","summary":"Change the public contact card: body { revision, ...fields }; a field left out stays, null removes it. Refused with conflict when the card changed since that revision; the Google profile link needs Business (plan_limit_reached).","tag":"agents","auth":"bearer","scope":"agents:write"},{"method":"GET","path":"/v1/hosted/{slug}/vcard","summary":"The contact card of a live hosted agent as a vCard 4.0 file (text/vcard, not the envelope); 404 while the agent is not live or its card has no name or contact way.","tag":"agents","auth":"none"},{"method":"GET","path":"/v1/me/agent/qr","summary":"My agent's QR codes, retired ones included: code, url (the address inside the QR, https://<site>/q/<code>), shortUrl, label, placement, greeting, questions, state.","tag":"agents","auth":"bearer","scope":"agents:read"},{"method":"POST","path":"/v1/me/agent/qr","summary":"A new QR code for my agent: body { label, placement: business_card|shop_window|flyer|stand|other, greeting?, questions? (up to 3) }. Every code opens the same agent page; the code is bound to the agent, not to its address. Send an Idempotency-Key so a double submit makes one code.","tag":"agents","auth":"bearer","scope":"agents:write","idempotency_key":true},{"method":"GET","path":"/v1/me/agent/qr/{id}","summary":"One QR code of my agent.","tag":"agents","auth":"bearer","scope":"agents:read"},{"method":"PATCH","path":"/v1/me/agent/qr/{id}","summary":"Change a QR code: label, placement, greeting (null removes it), questions, or state paused|active (pause and reactivate; the code stays the same). A retired code does not change (conflict).","tag":"agents","auth":"bearer","scope":"agents:write"},{"method":"POST","path":"/v1/me/agent/qr/{id}/retire","summary":"Retire a QR code for good: body { confirm: true }. Its address answers 410 from then on and the code is never handed out again.","tag":"agents","auth":"bearer","scope":"agents:write"},{"method":"GET","path":"/v1/me/agent/qr/{id}/file","summary":"A file of a QR code (not the envelope): ?format=svg|png|pdf, png with &scale=4..40 pixels per module, pdf (the two-sided 85 x 55 mm business card) with &locale=de|en and &bleed=0..5 mm (default 3).","tag":"agents","auth":"bearer","scope":"agents:read"},{"method":"GET","path":"/v1/me/agent/qr/{id}/link","summary":"A signed download address for one file of a QR code (the same options as /file) that works for 15 minutes; the printed QR address itself never expires.","tag":"agents","auth":"bearer","scope":"agents:read"},{"method":"GET","path":"/v1/me/agent/qr/{id}/stats","summary":"The day counters of a QR code (?days=1..366, default 30): views of the short address, chat starts, requests, vCard downloads and contact clicks. Counts of server events, not people, scans, saved contacts or sales.","tag":"agents","auth":"bearer","scope":"agents:read"},{"method":"GET","path":"/v1/qr/{code}","summary":"Where a QR address /q/<code> leads: { state: active, slug, pagePath } for an active code of a live agent, { state: retired } for a retired one; 404 for anything else. Read only.","tag":"agents","auth":"none"},{"method":"POST","path":"/v1/qr/{code}/visits","summary":"Resolves like GET /v1/qr/:code and counts one view. Meant for the site's /q resolver on a real visit; it leaves out HEAD, bots and link previews.","tag":"agents","auth":"none"},{"method":"GET","path":"/v1/qr/files/{token}","summary":"The file behind a signed QR download link (not the envelope); 404 when the link is invalid or expired.","tag":"agents","auth":"none"},{"method":"POST","path":"/v1/hosted/{slug}/events","summary":"Counts one contact click for a QR code: body { type: contact_click, action, entry: <code> }. The action is one of call, email, whatsapp, website or maps. Nothing is stored about who clicked; always 202.","tag":"agents","auth":"none"},{"method":"PUT","path":"/v1/me/agent/card/images/{kind}","summary":"Set an image of my agent's public card: kind logo, portrait or cover, the body is the image itself (Content-Type image/png, image/jpeg or image/webp, at most 5 MB; SVG, GIF and form uploads are refused). The server re-encodes it to WebP without metadata and cuts it to its kind (logo and portrait square up to 512 px, cover up to 1600 x 600); the card names it by its hash and its revision moves on by one. Answers with the card state.","tag":"agents","auth":"bearer","scope":"agents:write"},{"method":"DELETE","path":"/v1/me/agent/card/images/{kind}","summary":"Remove an image of my agent's public card (logo, portrait or cover); the card revision moves on by one, and no image there is no error. Answers with the card state.","tag":"agents","auth":"bearer","scope":"agents:write"},{"method":"GET","path":"/v1/hosted/{slug}/images/{kind}/{file}","summary":"An image of the public card of a live hosted agent, at the address its card gives (<hash>.webp; image/webp, not the envelope, cacheable for one hour). 404 while the agent is not live, and for every image its card does not name now.","tag":"agents","auth":"none"},{"method":"GET","path":"/v1/me/agent/card/images/{kind}","summary":"The image of one kind (logo, portrait or cover) my own agent's card names now, for the console preview: also while the agent is a draft or paused, and a portrait the page hides (image/webp, not the envelope, never stored by a cache). 404 when the card names no image of that kind.","tag":"agents","auth":"bearer","scope":"agents:read"},{"method":"GET","path":"/v1/me/assistant","summary":"The setup assistant of my account: { enabled, reason, plan, used, cap, remaining, resetsAt }. reason is off, no_model or plan and is present only when enabled is false. used, cap and remaining count this UTC month; resetsAt is the start of the next one. Session only.","tag":"agents","auth":"bearer","scope":"account:manage"},{"method":"POST","path":"/v1/me/assistant/sessions","summary":"Open a setup assistant session. Business only (plan_limit_reached otherwise); not_found while the assistant is switched off or has no model. Session only.","tag":"agents","auth":"bearer","scope":"account:manage"},{"method":"GET","path":"/v1/me/assistant/sessions/{id}","summary":"One setup assistant session with its history: { session, messages }. A session of another account is not_found. Session only.","tag":"agents","auth":"bearer","scope":"account:manage"},{"method":"POST","path":"/v1/me/assistant/sessions/{id}/messages","summary":"One turn with the setup assistant: body { message (1 to 4000 characters), locale: de|en }. It sets up my own agent with the rights of my own session and never switches it live. The result is { reply, toolSteps: [{ name }], used, cap, remaining, aborted }. With Accept: text/event-stream the turn streams as SSE events instead: text, tool_call, tool_result, done { used, cap, remaining, aborted }, and error { slug, message } if it fails mid-run. Business only; each turn counts one against the monthly cap (assistant_limit_reached when it is used up). Session only.","tag":"agents","auth":"bearer","scope":"account:manage"},{"method":"GET","path":"/v1/me/agent/directories","summary":"The external agent directories for my agent: per directory whether it is switched on on this server (verfuegbar; abgeschaltet schalter_aus or schluessel_fehlt), its capabilities (faehigkeiten), the approval revision it needs, the state (zustand), the last error and notes (hinweise); plus the blocked directories with their reason and manual recommendations, which are never synchronized. Never a token.","tag":"agents","auth":"bearer","scope":"agents:read"},{"method":"GET","path":"/v1/me/agent/directories/{ziel}/preview","summary":"What would be sent to one directory, built from the public view of my live agent: the fields sent, the fields not sent with the reason, the export revision and the approval revision. No directory is contacted.","tag":"agents","auth":"bearer","scope":"agents:read"},{"method":"POST","path":"/v1/me/agent/directories/{ziel}/activate","summary":"Opt in to one directory: body { freigabeRevision } naming the revision the preview showed (conflict once it moved on). Records the approval for this directory only; nothing is sent yet. not_found while the directory is switched off on this server.","tag":"agents","auth":"bearer","scope":"agents:write"},{"method":"POST","path":"/v1/me/agent/directories/{ziel}/publish","summary":"Publish my live agent to one approved directory now, or bring the entry up to date. The entry counts as published only after reading it back matched what was sent. Returns { ergebnis, status }; not_found while the directory is switched off.","tag":"agents","auth":"bearer","scope":"agents:write"},{"method":"POST","path":"/v1/me/agent/directories/{ziel}/update","summary":"Bring an existing entry in one directory up to date now and read it back. Returns { ergebnis, status }.","tag":"agents","auth":"bearer","scope":"agents:write"},{"method":"POST","path":"/v1/me/agent/directories/{ziel}/revoke","summary":"Withdraw the approval for one directory: nothing is published or updated there any more. A directory without a temporary pause (ALLAGENTS) keeps the entry and the state says so; nothing is removed.","tag":"agents","auth":"bearer","scope":"agents:write"},{"method":"POST","path":"/v1/me/agent/directories/{ziel}/remove","summary":"Remove the entry from one directory. Where the removal is permanent (ALLAGENTS), body { bestaetigung: dauerhaft } is required (invalid_request otherwise). It counts as removed only once the directory no longer shows it.","tag":"agents","auth":"bearer","scope":"agents:write"},{"method":"GET","path":"/v1/billing/cancellation","summary":"The account's own cancellations to a later day that are still waiting (reference, receipt, kind, requested end), so the account page can show them and offer to take them back. Session only.","tag":"billing","auth":"bearer","scope":"account:manage"}]},"errors":[],"messages":[],"request_id":"req_0c2bdf15-6f2e-4cff-a96f-60e3e7970d8d"}