{"openapi":"3.1.0","info":{"title":"AUTOGROK Desk","version":"1.1.0","description":"Paid micro-jobs for AI agents and people: URL probe, page extract, watch once, JSON shape, researched brief. Pay per call with x402 (USDC on Base) or with prepaid card packs (Stripe MPP).","x-guidance":"Paid micro-jobs over HTTP. POST a JSON body to /v1/jobs/{job}: url-probe ($0.03), page-extract ($0.05), watch-once ($0.10), json-shape ($0.15) return results instantly; brief ($0.25) returns a job id and is delivered within 24h (poll GET /v1/jobs/{id}, free). Pay per call in USDC on Base via x402 (unpaid calls get 402 with a PAYMENT-REQUIRED challenge), or buy a card pack via MPP at POST /v1/mpp/packs/{pack_id} and send the returned key as X-Entitlement-Key. Same jobs as paid MCP tools at /mcp. Failed calls cost nothing: a failed x402 call is never settled, and a pack credit drawn for a failed call is given back. Public http(s) URLs only.","contact":{"name":"AUTOGROK Desk","email":"desk@grokaiapps.com","url":"https://desk.grokaiapps.com/"}},"servers":[{"url":"https://desk.grokaiapps.com"}],"x-service-info":{"categories":["developer-tools","web-data","research"],"docs":{"homepage":"https://desk.grokaiapps.com/","apiReference":"https://desk.grokaiapps.com/v1/discovery","llms":"https://desk.grokaiapps.com/llms.txt"},"mcp":"https://desk.grokaiapps.com/mcp"},"paths":{"/v1/jobs/url-probe":{"post":{"operationId":"url_probe","summary":"URL probe ($0.03)","description":"Check if a URL is up. Sends a HEAD request (GET fallback that reads at most 8 KB) to a public http(s) URL and returns the HTTP status code, ok true/false, final URL after redirects, content type, content length and response time in ms. A cheap uptime, health or broken-link check before a heavier fetch. Public hosts only; private, local and logged-in URLs are refused. Failed calls aren't charged when you pay per call with x402: if the job errors, the USDC payment is never settled. With pack credits (X-Entitlement-Key), a call that fails gives its credit back.","tags":["Jobs"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.03"},"protocols":[{"x402":{}}]},"parameters":[{"name":"X-Entitlement-Key","in":"header","required":false,"description":"Optional secret pack key agk.… (from a Stripe Checkout pack or MPP) instead of x402. Emails and Checkout session ids are not accepted (401 pack_key_required). A credit pays for its own job, or one job priced at or below its paid unit price (difference kept as balance); otherwise 402 needs_own_pack.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"Public http(s) URL to probe"},"method":{"type":"string","enum":["HEAD","GET"],"description":"Prefer HEAD (default); GET peeks at most 8KB"}}},"example":{"url":"https://example.com","method":"HEAD"}}}},"responses":{"200":{"description":"Job result","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"finalUrl":{"type":"string"},"status":{"type":"integer"},"ok":{"type":"boolean"},"methodUsed":{"type":"string","enum":["HEAD","GET"]},"contentType":{"type":["string","null"]},"contentLength":{"type":["integer","null"]},"redirected":{"type":"boolean"},"elapsedMs":{"type":"integer"}},"required":["url","finalUrl","status","ok","methodUsed","elapsedMs"]},"example":{"url":"https://example.com/","finalUrl":"https://example.com/","status":200,"ok":true,"methodUsed":"HEAD","contentType":"text/html","contentLength":null,"redirected":false,"elapsedMs":120}}}},"402":{"description":"Payment Required (x402 v2 PAYMENT-REQUIRED header, USDC on Base)"}}}},"/v1/jobs/page-extract":{"post":{"operationId":"page_extract","summary":"Page extract ($0.05)","description":"Extract the readable text of a web page as clean markdown. Fetches one public http(s) HTML page and returns its main content as markdown, plus title, meta description, byline and a short excerpt, with menus and page clutter removed. Useful for summarizing, quoting, or feeding a page to an LLM or RAG index without a browser. Not for logged-in, paywalled or non-HTML URLs (such as PDFs); private hosts are refused. Failed calls aren't charged when you pay per call with x402: if the job errors, the USDC payment is never settled. With pack credits (X-Entitlement-Key), a call that fails gives its credit back.","tags":["Jobs"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.05"},"protocols":[{"x402":{}}]},"parameters":[{"name":"X-Entitlement-Key","in":"header","required":false,"description":"Optional secret pack key agk.… (from a Stripe Checkout pack or MPP) instead of x402. Emails and Checkout session ids are not accepted (401 pack_key_required). A credit pays for its own job, or one job priced at or below its paid unit price (difference kept as balance); otherwise 402 needs_own_pack.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"Public http(s) HTML page URL"}}},"example":{"url":"https://example.com"}}}},"responses":{"200":{"description":"Job result","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"title":{"type":["string","null"]},"description":{"type":["string","null"]},"markdown":{"type":"string"},"byline":{"type":["string","null"]},"excerpt":{"type":["string","null"]}},"required":["url","markdown"]},"example":{"url":"https://example.com/","title":"Example Domain","description":"Example Domain placeholder page","markdown":"# Example Domain\n\nThis domain is for use in illustrative examples…","byline":null,"excerpt":"This domain is for use in illustrative examples…"}}}},"402":{"description":"Payment Required (x402 v2 PAYMENT-REQUIRED header, USDC on Base)"}}}},"/v1/jobs/watch-once":{"post":{"operationId":"watch_once","summary":"Watch once ($0.10)","description":"Detect whether a web page has changed since the last check. Fetches a public URL, normalizes its main text and returns a sha256 hash, changed true/false against the previous_hash sent in (null on the first check), word count and fetch time. A one-shot change monitor for price, policy or docs pages. Each call is a single check; there are no webhooks or stored subscriptions. Failed calls aren't charged when you pay per call with x402: if the job errors, the USDC payment is never settled. With pack credits (X-Entitlement-Key), a call that fails gives its credit back.","tags":["Jobs"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.10"},"protocols":[{"x402":{}}]},"parameters":[{"name":"X-Entitlement-Key","in":"header","required":false,"description":"Optional secret pack key agk.… (from a Stripe Checkout pack or MPP) instead of x402. Emails and Checkout session ids are not accepted (401 pack_key_required). A credit pays for its own job, or one job priced at or below its paid unit price (difference kept as balance); otherwise 402 needs_own_pack.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"Public http(s) URL to hash"},"previous_hash":{"type":"string","description":"Prior sha256 hex; omit for baseline (changed=null)"}}},"example":{"url":"https://example.com","previous_hash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}}}},"responses":{"200":{"description":"Job result","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"hash":{"type":"string"},"changed":{"type":["boolean","null"]},"previous_hash":{"type":["string","null"]},"word_count":{"type":"integer"},"fetched_at":{"type":"string","format":"date-time"}},"required":["url","hash","changed","word_count","fetched_at"]},"example":{"url":"https://example.com/","hash":"ab12cd34ef567890ab12cd34ef567890ab12cd34ef567890ab12cd34ef567890","changed":true,"previous_hash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","word_count":42,"fetched_at":"2026-09-21T20:00:00.000Z"}}}},"402":{"description":"Payment Required (x402 v2 PAYMENT-REQUIRED header, USDC on Base)"}}}},"/v1/jobs/json-shape":{"post":{"operationId":"json_shape","summary":"JSON shape ($0.15)","description":"Turn messy text into structured JSON. Parses a JSON blob or key: value lines (up to 50,000 characters) into an object using the field names given in schema_hint, and returns notes on what matched. Rule-based parsing with no LLM, so results are fast and predictable. Useful for normalizing tool output, logs or form dumps before further processing. Not for free-form language understanding or writing. Failed calls aren't charged when you pay per call with x402: if the job errors, the USDC payment is never settled. With pack credits (X-Entitlement-Key), a call that fails gives its credit back.","tags":["Jobs"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.15"},"protocols":[{"x402":{}}]},"parameters":[{"name":"X-Entitlement-Key","in":"header","required":false,"description":"Optional secret pack key agk.… (from a Stripe Checkout pack or MPP) instead of x402. Emails and Checkout session ids are not accepted (401 pack_key_required). A credit pays for its own job, or one job priced at or below its paid unit price (difference kept as balance); otherwise 402 needs_own_pack.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text","schema_hint"],"properties":{"text":{"type":"string","maxLength":50000,"description":"Raw text or JSON to reshape (≤50k chars)"},"schema_hint":{"type":"string","description":"Free-text hint of desired field names / shape"}}},"example":{"text":"name: Ada\nage: 36","schema_hint":"name, age"}}}},"responses":{"200":{"description":"Job result","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"data":{},"notes":{"type":"array","items":{"type":"string"}},"schema_hint":{"type":"string"}},"required":["ok","notes","schema_hint"]},"example":{"ok":true,"data":{"name":"Ada","age":36},"notes":["parsed key:value lines","schema_hint matched 2/2 keys"],"schema_hint":"name, age"}}}},"402":{"description":"Payment Required (x402 v2 PAYMENT-REQUIRED header, USDC on Base)"}}}},"/v1/jobs/brief":{"post":{"operationId":"brief","summary":"Brief ($0.25)","description":"Research brief with cited sources on any topic, written to order (not instant). Returns a job id and due time right away; the finished brief (title, summary, markdown body, source links, word count) is ready within 24 hours, usually the same day, at GET /v1/jobs/:id, which is free. About 500 words by default (50-1500 via max_words), with at least 3 cited public web sources. Failed calls aren't charged when you pay per call with x402: if the job errors, the USDC payment is never settled. With pack credits (X-Entitlement-Key), a call that fails gives its credit back.","tags":["Jobs"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.25"},"protocols":[{"x402":{}}]},"parameters":[{"name":"X-Entitlement-Key","in":"header","required":false,"description":"Optional secret pack key agk.… (from a Stripe Checkout pack or MPP) instead of x402. Emails and Checkout session ids are not accepted (401 pack_key_required). A credit pays for its own job, or one job priced at or below its paid unit price (difference kept as balance); otherwise 402 needs_own_pack.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["topic"],"properties":{"topic":{"type":"string","minLength":1,"maxLength":2000,"description":"What the brief should cover"},"max_words":{"type":"integer","minimum":50,"maximum":1500,"description":"Target length in words (default 500)"}}},"example":{"topic":"x402 discovery for agents","max_words":400}}}},"responses":{"200":{"description":"Job result","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"status":{"type":"string","enum":["queued","running","done","failed"]},"createdAt":{"type":"string","format":"date-time"},"dueBy":{"type":"string","format":"date-time"},"late":{"type":"boolean"},"statusUrl":{"type":"string"}},"required":["id","status","dueBy","statusUrl"]},"example":{"id":"3f2b9c1e-6a0d-4c1f-9a51-2f0e7d8b1c44","type":"brief","status":"queued","createdAt":"2026-10-05T20:00:00.000Z","dueBy":"2026-10-06T20:00:00.000Z","late":false,"statusUrl":"https://desk.grokaiapps.com/v1/jobs/3f2b9c1e-6a0d-4c1f-9a51-2f0e7d8b1c44"}}}},"402":{"description":"Payment Required (x402 v2 PAYMENT-REQUIRED header, USDC on Base)"}}}},"/v1/jobs/deep-brief":{"post":{"operationId":"deep_brief","summary":"Deep brief ($9.00)","description":"In-depth research report with cited sources, for decisions that need more than a quick note. About 1,500 words (1,200-2,000) with an executive summary, key findings and analysis, at least 8 cited public sources, and an operator check before delivery. Returns a job id and due time right away; the report is ready within 24 hours at GET /v1/jobs/:id, which is free. Free sample: /samples/brief-x402-bazaar-discovery.md Failed calls aren't charged when you pay per call with x402: if the job errors, the USDC payment is never settled. With pack credits (X-Entitlement-Key), a call that fails gives its credit back.","tags":["Jobs"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"9.00"},"protocols":[{"x402":{}}]},"parameters":[{"name":"X-Entitlement-Key","in":"header","required":false,"description":"Optional secret pack key agk.… (from a Stripe Checkout pack or MPP) instead of x402. Emails and Checkout session ids are not accepted (401 pack_key_required). A credit pays for its own job, or one job priced at or below its paid unit price (difference kept as balance); otherwise 402 needs_own_pack.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["topic"],"properties":{"topic":{"type":"string","minLength":1,"maxLength":2000,"description":"What the deep brief should cover"},"focus":{"type":"string","maxLength":2000,"description":"Optional angle, audience, or questions to answer"}}},"example":{"topic":"State of x402 discovery: Bazaar vs MCP directories","focus":"For a seller choosing where to list"}}}},"responses":{"200":{"description":"Job result","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"tier":{"type":"string"},"status":{"type":"string","enum":["queued","running","done","failed"]},"createdAt":{"type":"string","format":"date-time"},"dueBy":{"type":"string","format":"date-time"},"late":{"type":"boolean"},"statusUrl":{"type":"string"}},"required":["id","status","dueBy","statusUrl"]},"example":{"id":"7c1d2e3f-4a5b-4c6d-8e9f-0a1b2c3d4e5f","type":"brief","tier":"deep","status":"queued","createdAt":"2026-10-13T08:00:00.000Z","dueBy":"2026-10-14T08:00:00.000Z","late":false,"statusUrl":"https://desk.grokaiapps.com/v1/jobs/7c1d2e3f-4a5b-4c6d-8e9f-0a1b2c3d4e5f"}}}},"402":{"description":"Payment Required (x402 v2 PAYMENT-REQUIRED header, USDC on Base)"}}}},"/v1/mpp/packs/pack_url_probe_17":{"post":{"operationId":"buy_pack_url_probe_17","summary":"Buy URL probe ×17 — 17 url-probe job tokens ($0.51).","description":"MPP prepaid pack. The 402 lists both payment methods (card via Stripe SPT, stablecoin on Tempo). Pay with either and receive an entitlement_key for X-Entitlement-Key on /v1/jobs/* and /mcp.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.51"},"protocols":[{"mpp":{"method":"stripe","intent":"charge","currency":"usd"}},{"mpp":{"method":"tempo","intent":"charge","currency":"usd"}}],"offers":[{"amount":"51","currency":"usd","decimals":2,"description":"AUTOGROK Desk URL probe x17","intent":"charge","method":"stripe","price_usd":"0.51"},{"amount":"510000","currency":"usd","decimals":6,"description":"AUTOGROK Desk URL probe x17","intent":"charge","method":"tempo","network":"tempo","price_usd":"0.51","settlement":"Stripe crypto (stablecoin → Stripe balance)"}]},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{}}}}},"parameters":[{"name":"X-Entitlement-Key","in":"header","required":false,"description":"Optional existing key to top up instead of minting a new one.","schema":{"type":"string"}}],"responses":{"200":{"description":"Paid. Credits granted.","content":{"application/json":{"schema":{"type":"object","properties":{"entitlement_key":{"type":"string"},"pack_id":{"type":"string"},"added":{"type":"object","additionalProperties":{"type":"integer"}},"credits":{"type":"object","additionalProperties":{"type":"integer"}},"payment_intent":{"type":"string"}}}}}},"402":{"description":"Payment required. WWW-Authenticate carries one Payment challenge per method (stripe/charge for cards, tempo/charge for stablecoin)."},"404":{"description":"Unknown pack_id."}}}},"/v1/mpp/packs/pack_page_extract_10":{"post":{"operationId":"buy_pack_page_extract_10","summary":"Buy Page extract ×10 — 10 page-extract job tokens ($0.50).","description":"MPP prepaid pack. The 402 lists both payment methods (card via Stripe SPT, stablecoin on Tempo). Pay with either and receive an entitlement_key for X-Entitlement-Key on /v1/jobs/* and /mcp.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.50"},"protocols":[{"mpp":{"method":"stripe","intent":"charge","currency":"usd"}},{"mpp":{"method":"tempo","intent":"charge","currency":"usd"}}],"offers":[{"amount":"50","currency":"usd","decimals":2,"description":"AUTOGROK Desk Page extract x10","intent":"charge","method":"stripe","price_usd":"0.50"},{"amount":"500000","currency":"usd","decimals":6,"description":"AUTOGROK Desk Page extract x10","intent":"charge","method":"tempo","network":"tempo","price_usd":"0.50","settlement":"Stripe crypto (stablecoin → Stripe balance)"}]},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{}}}}},"parameters":[{"name":"X-Entitlement-Key","in":"header","required":false,"description":"Optional existing key to top up instead of minting a new one.","schema":{"type":"string"}}],"responses":{"200":{"description":"Paid. Credits granted.","content":{"application/json":{"schema":{"type":"object","properties":{"entitlement_key":{"type":"string"},"pack_id":{"type":"string"},"added":{"type":"object","additionalProperties":{"type":"integer"}},"credits":{"type":"object","additionalProperties":{"type":"integer"}},"payment_intent":{"type":"string"}}}}}},"402":{"description":"Payment required. WWW-Authenticate carries one Payment challenge per method (stripe/charge for cards, tempo/charge for stablecoin)."},"404":{"description":"Unknown pack_id."}}}},"/v1/mpp/packs/pack_watch_5":{"post":{"operationId":"buy_pack_watch_5","summary":"Buy Watch once ×5 — 5 watch-once job tokens ($0.50).","description":"MPP prepaid pack. The 402 lists both payment methods (card via Stripe SPT, stablecoin on Tempo). Pay with either and receive an entitlement_key for X-Entitlement-Key on /v1/jobs/* and /mcp.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.50"},"protocols":[{"mpp":{"method":"stripe","intent":"charge","currency":"usd"}},{"mpp":{"method":"tempo","intent":"charge","currency":"usd"}}],"offers":[{"amount":"50","currency":"usd","decimals":2,"description":"AUTOGROK Desk Watch once x5","intent":"charge","method":"stripe","price_usd":"0.50"},{"amount":"500000","currency":"usd","decimals":6,"description":"AUTOGROK Desk Watch once x5","intent":"charge","method":"tempo","network":"tempo","price_usd":"0.50","settlement":"Stripe crypto (stablecoin → Stripe balance)"}]},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{}}}}},"parameters":[{"name":"X-Entitlement-Key","in":"header","required":false,"description":"Optional existing key to top up instead of minting a new one.","schema":{"type":"string"}}],"responses":{"200":{"description":"Paid. Credits granted.","content":{"application/json":{"schema":{"type":"object","properties":{"entitlement_key":{"type":"string"},"pack_id":{"type":"string"},"added":{"type":"object","additionalProperties":{"type":"integer"}},"credits":{"type":"object","additionalProperties":{"type":"integer"}},"payment_intent":{"type":"string"}}}}}},"402":{"description":"Payment required. WWW-Authenticate carries one Payment challenge per method (stripe/charge for cards, tempo/charge for stablecoin)."},"404":{"description":"Unknown pack_id."}}}},"/v1/mpp/packs/pack_json_4":{"post":{"operationId":"buy_pack_json_4","summary":"Buy JSON shape ×4 — 4 json-shape job tokens ($0.60).","description":"MPP prepaid pack. The 402 lists both payment methods (card via Stripe SPT, stablecoin on Tempo). Pay with either and receive an entitlement_key for X-Entitlement-Key on /v1/jobs/* and /mcp.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.60"},"protocols":[{"mpp":{"method":"stripe","intent":"charge","currency":"usd"}},{"mpp":{"method":"tempo","intent":"charge","currency":"usd"}}],"offers":[{"amount":"60","currency":"usd","decimals":2,"description":"AUTOGROK Desk JSON shape x4","intent":"charge","method":"stripe","price_usd":"0.60"},{"amount":"600000","currency":"usd","decimals":6,"description":"AUTOGROK Desk JSON shape x4","intent":"charge","method":"tempo","network":"tempo","price_usd":"0.60","settlement":"Stripe crypto (stablecoin → Stripe balance)"}]},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{}}}}},"parameters":[{"name":"X-Entitlement-Key","in":"header","required":false,"description":"Optional existing key to top up instead of minting a new one.","schema":{"type":"string"}}],"responses":{"200":{"description":"Paid. Credits granted.","content":{"application/json":{"schema":{"type":"object","properties":{"entitlement_key":{"type":"string"},"pack_id":{"type":"string"},"added":{"type":"object","additionalProperties":{"type":"integer"}},"credits":{"type":"object","additionalProperties":{"type":"integer"}},"payment_intent":{"type":"string"}}}}}},"402":{"description":"Payment required. WWW-Authenticate carries one Payment challenge per method (stripe/charge for cards, tempo/charge for stablecoin)."},"404":{"description":"Unknown pack_id."}}}},"/v1/mpp/packs/pack_brief_2":{"post":{"operationId":"buy_pack_brief_2","summary":"Buy Brief ×2 — 2 brief job tokens ($0.50).","description":"MPP prepaid pack. The 402 lists both payment methods (card via Stripe SPT, stablecoin on Tempo). Pay with either and receive an entitlement_key for X-Entitlement-Key on /v1/jobs/* and /mcp.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.50"},"protocols":[{"mpp":{"method":"stripe","intent":"charge","currency":"usd"}},{"mpp":{"method":"tempo","intent":"charge","currency":"usd"}}],"offers":[{"amount":"50","currency":"usd","decimals":2,"description":"AUTOGROK Desk Brief x2","intent":"charge","method":"stripe","price_usd":"0.50"},{"amount":"500000","currency":"usd","decimals":6,"description":"AUTOGROK Desk Brief x2","intent":"charge","method":"tempo","network":"tempo","price_usd":"0.50","settlement":"Stripe crypto (stablecoin → Stripe balance)"}]},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{}}}}},"parameters":[{"name":"X-Entitlement-Key","in":"header","required":false,"description":"Optional existing key to top up instead of minting a new one.","schema":{"type":"string"}}],"responses":{"200":{"description":"Paid. Credits granted.","content":{"application/json":{"schema":{"type":"object","properties":{"entitlement_key":{"type":"string"},"pack_id":{"type":"string"},"added":{"type":"object","additionalProperties":{"type":"integer"}},"credits":{"type":"object","additionalProperties":{"type":"integer"}},"payment_intent":{"type":"string"}}}}}},"402":{"description":"Payment required. WWW-Authenticate carries one Payment challenge per method (stripe/charge for cards, tempo/charge for stablecoin)."},"404":{"description":"Unknown pack_id."}}}},"/v1/mpp/packs/pack_deep_brief_1":{"post":{"operationId":"buy_pack_deep_brief_1","summary":"Buy Deep brief ×1 — 1 deep-brief job token ($9.00): ~1500 words, 8+ sources, within 24h.","description":"MPP prepaid pack. The 402 lists both payment methods (card via Stripe SPT, stablecoin on Tempo). Pay with either and receive an entitlement_key for X-Entitlement-Key on /v1/jobs/* and /mcp.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"9.00"},"protocols":[{"mpp":{"method":"stripe","intent":"charge","currency":"usd"}},{"mpp":{"method":"tempo","intent":"charge","currency":"usd"}}],"offers":[{"amount":"900","currency":"usd","decimals":2,"description":"AUTOGROK Desk Deep brief x1","intent":"charge","method":"stripe","price_usd":"9.00"},{"amount":"9000000","currency":"usd","decimals":6,"description":"AUTOGROK Desk Deep brief x1","intent":"charge","method":"tempo","network":"tempo","price_usd":"9.00","settlement":"Stripe crypto (stablecoin → Stripe balance)"}]},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{}}}}},"parameters":[{"name":"X-Entitlement-Key","in":"header","required":false,"description":"Optional existing key to top up instead of minting a new one.","schema":{"type":"string"}}],"responses":{"200":{"description":"Paid. Credits granted.","content":{"application/json":{"schema":{"type":"object","properties":{"entitlement_key":{"type":"string"},"pack_id":{"type":"string"},"added":{"type":"object","additionalProperties":{"type":"integer"}},"credits":{"type":"object","additionalProperties":{"type":"integer"}},"payment_intent":{"type":"string"}}}}}},"402":{"description":"Payment required. WWW-Authenticate carries one Payment challenge per method (stripe/charge for cards, tempo/charge for stablecoin)."},"404":{"description":"Unknown pack_id."}}}},"/health":{"get":{"operationId":"health","summary":"Health check (free)","security":[],"responses":{"200":{"description":"OK"}}}},"/v1/discovery":{"get":{"operationId":"discovery","summary":"Machine-readable catalog of jobs, prices and payment rails (free)","security":[],"responses":{"200":{"description":"OK"}}}},"/v1/jobs/{id}":{"get":{"operationId":"job_status","summary":"Job status / result for a brief (free)","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Job view"},"404":{"description":"Unknown job"}}}},"/v1/support":{"get":{"summary":"How to ask a person for help (no side effects)","security":[],"responses":{"200":{"description":"Topics, limits and the fallback email"}}},"post":{"summary":"Open a support ticket (HELP-XXXX)","security":[],"description":"Send X-Entitlement-Key (agk.…) or include an email. A person replies, usually within 1 business day. No automatic email is sent; the response is the acknowledgement. Rate-limited (5/hour per IP, 5/day per email). MCP: support_request.","parameters":[{"name":"X-Entitlement-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["topic","message"],"properties":{"topic":{"type":"string","enum":["payment","job","credits","other"]},"message":{"type":"string","minLength":3,"maxLength":2000},"email":{"type":"string","format":"email","description":"Required without a pack key"},"job_id":{"type":"string","maxLength":80},"receipt":{"type":"string","maxLength":120,"description":"Checkout session id, if about a payment"}}},"example":{"topic":"job","message":"Job job_123 returned an empty extract for https://example.com.","job_id":"job_123"}}}},"responses":{"201":{"description":"{ ok, ticket: \"HELP-XXXX\", email, message, fallback, auto_reply: false }"},"400":{"description":"invalid_topic | message_required | message_too_long | email_required"},"401":{"description":"auth_required (no pack key and no email)"},"429":{"description":"rate_limited"}}}},"/v1/me/tip-remaining":{"get":{"operationId":"tip_remaining_preview","security":[],"summary":"Preview what's left to tip: pack value (+ dollar balance when signed in). Free.","parameters":[{"name":"X-Entitlement-Key","in":"header","required":false,"schema":{"type":"string"},"description":"Your pack key agk.… (or use a signed-in session)"}],"responses":{"200":{"description":"{ total_usd, total_micros, balance_usd, packs_usd, can_tip, irreversible }"},"401":{"description":"auth_required / pack_key_required"}}},"post":{"operationId":"tip_remaining","security":[],"summary":"Tip everything left (pack credits + pack balance + dollar balance) to AUTOGROK. No new charge; irreversible.","parameters":[{"name":"X-Entitlement-Key","in":"header","required":false,"schema":{"type":"string"},"description":"Your pack key agk.… (or use a signed-in session)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["confirm"],"properties":{"confirm":{"type":"boolean","enum":[true],"description":"Must be true."},"expect_usd":{"type":"string","example":"0.45","description":"The previewed total; refused with 409 amount_changed if it changed."}}}}}},"responses":{"200":{"description":"{ ok, gift_id, tipped_usd, amount_micros, from_balance_usd, from_packs_usd, irreversible }"},"400":{"description":"confirm_required"},"401":{"description":"auth_required / pack_key_required"},"409":{"description":"amount_changed (preview again) or nothing_to_tip"}}}}}}