{"components":{"schemas":{"AgentUpgrade":{"properties":{"authorizationServer":{"format":"uri","type":"string"},"clientId":{"type":"string"},"device":{"$ref":"#/components/schemas/DeviceUpgrade"},"scope":{"type":"string"}},"required":["authorizationServer","scope"],"type":"object"},"DeviceUpgrade":{"properties":{"deviceCode":{"type":"string"},"expiresIn":{"minimum":0,"type":"integer"},"grantType":{"type":"string"},"interval":{"minimum":1,"type":"integer"},"tokenEndpoint":{"format":"uri","type":"string"},"userCode":{"type":"string"},"verificationUri":{"format":"uri","type":"string"},"verificationUriComplete":{"format":"uri","type":"string"}},"required":["verificationUriComplete","verificationUri","userCode","deviceCode","tokenEndpoint","grantType","interval","expiresIn"],"type":"object"},"Error":{"properties":{"code":{"description":"Stable machine-readable error code when the endpoint defines one.","type":"string"},"error":{"description":"Customer-safe error message.","type":"string"}},"required":["error"],"type":"object"},"PaymentRequiredError":{"allOf":[{"$ref":"#/components/schemas/Error"},{"properties":{"error":{"not":{"const":"trial_cap_reached"}}},"type":"object"}]},"TrialCapReached":{"properties":{"error":{"const":"trial_cap_reached","type":"string"},"message":{"description":"Human-relayable continuation instructions, including an executable token poll.","type":"string"},"upgrade":{"$ref":"#/components/schemas/AgentUpgrade"}},"required":["error","message","upgrade"],"type":"object"}},"securitySchemes":{"apiKeyAuth":{"description":"Your AnyAPI key.","in":"header","name":"X-API-Key","type":"apiKey","x-default":"YOUR_ANYAPI_KEY"},"bearerAuth":{"description":"Your AnyAPI key as a Bearer token.","scheme":"bearer","type":"http","x-default":"YOUR_ANYAPI_KEY"}}},"info":{"contact":{"email":"support@getanyapi.com"},"description":"Any API, one wallet, USD, no subscriptions. Each API is a single discovered operation: send the normalized input, get a normalized result. You are charged the winning provider's price in real dollars only on success; failed calls are never charged.","title":"AnyAPI","version":"1.0.0","x-guidance":"Use each operation's published method and path with its normalized JSON input (see the operation requestBody). To pay: send your AnyAPI key (Authorization: Bearer, billed from your USD wallet); or pay per call inline with no account - x402 (call with no key, get HTTP 402 with a PAYMENT-REQUIRED header, retry with the PAYMENT-SIGNATURE header, USDC on base), or MPP (retry with Authorization: Payment, tempo). You are charged only on success."},"openapi":"3.1.0","paths":{"/v1/results/{id}":{"get":{"description":"Re-read the full unshaped result of a prior run from its short-lived cache and re-shape it with the same `fields`, `max_items`, `summary`, and `jq` query params as /v1/run, all for FREE (no re-billing). Results are scoped to the customer that paid for them and cached for about 15 minutes. Use this to read the rest of, or reshape, a paid result instead of re-running and paying again.","operationId":"getResult","parameters":[{"description":"The `resultId` returned on a prior run response envelope.","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the ORIGINAL run, echoed for envelope parity; this re-read is free.","type":"number"},"items":{"description":"Number of result rows returned by the original run.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"description":"The normalized result (`{found, data}` by default), re-shaped by any fields/max_items/summary/jq params. Open shape - a jq expression may replace it with an array or scalar."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"False on this cached-result endpoint; true is reserved for durable idempotency replays from POST /v1/run/{sku}.","type":"boolean"},"resultId":{"description":"The id you requested, echoed so you can keep re-reading the same cached result.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"The re-shaped result envelope (same shape as a run response)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown or expired result id (results are cached about 15 minutes); re-run the API for fresh data."}},"summary":"Re-read a cached result for free"}},"/v1/run/ahrefs.backlinks":{"post":{"description":"Get the referring pages linking to a domain or URL, each with the source page, anchor text, linking domain rating, and page title.\n\n**Price:** billed per result - \\$19.50 per 1,000 requests base + \\$0.00 per 1,000 results, capped at \\$19.50 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"ahrefs_backlinks","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"mode":"exact","url":"ahrefs.com"},"schema":{"additionalProperties":false,"example":{"mode":"exact","url":"ahrefs.com"},"properties":{"mode":{"default":"subdomains","description":"Match scope: \"exact\" for the given URL only, or \"subdomains\" to include the domain and its subdomains.","enum":["exact","subdomains"],"type":"string"},"url":{"description":"The domain or page URL to find backlinks for (e.g. \"ahrefs.com\").","type":"string"}},"required":["url"],"title":"Ahrefs backlinks input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Referring pages that link to the domain or URL. Populated whenever the provider has data for the entity.","items":{"properties":{"anchor":{"description":"Anchor text of the link.","type":"string"},"contextAfter":{"description":"Text immediately after the anchor on the referring page.","type":"string"},"contextBefore":{"description":"Text immediately before the anchor on the referring page.","type":"string"},"domainRating":{"description":"Ahrefs Domain Rating (0-100) of the linking domain.","type":"number"},"title":{"description":"Title of the referring page.","type":"string"},"urlFrom":{"description":"URL of the referring page that contains the link. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"urlTo":{"description":"Target URL the link points to.","type":"string"}},"required":["urlFrom"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Ahrefs backlinks output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Ahrefs Backlinks","tags":["ahrefs"],"x-payment-info":{"price":{"currency":"USD","max":"0.019500","min":"0.019500","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/ahrefs.keyword_ideas":{"post":{"description":"Get related keyword suggestions for any seed term, each with an Ahrefs difficulty and search-volume bucket.\n\n**Price:** billed per result - \\$1.50 per 1,000 requests base + \\$18.00 per 1,000 results, capped at \\$19.50 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"ahrefs_keyword_ideas","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"country":"us","keyword":"coffee"},"schema":{"additionalProperties":false,"example":{"country":"us","keyword":"coffee"},"properties":{"country":{"default":"us","description":"Two-letter country code that scopes the suggestions (e.g. us, gb, de).","type":"string"},"keyword":{"description":"The seed keyword to expand into related suggestions (e.g. \"coffee\").","type":"string"}},"required":["keyword"],"title":"Ahrefs keyword ideas input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Keyword-idea records: the seed keyword and its related keyword suggestions, each with an Ahrefs difficulty and search-volume bucket. Populated whenever the provider has data for the entity.","items":{"properties":{"country":{"description":"Two-letter country code the suggestions are scoped to.","type":"string"},"ideas":{"description":"Related keyword suggestions for the seed term. Populated whenever the provider has data for the entity.","items":{"properties":{"difficulty":{"description":"Relative Ahrefs difficulty bucket (a letter such as E, M, or H), not an exact number.","type":"string"},"keyword":{"description":"The suggested related keyword. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"updatedAt":{"description":"Timestamp the suggestion metrics were last updated.","type":"string"},"volume":{"description":"Relative search-volume bucket (a letter grade), not an exact number.","type":"string"}},"required":["keyword"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"searchEngine":{"description":"Search engine the suggestions are drawn from (e.g. Google).","type":"string"},"sourceKeyword":{"description":"The seed keyword the suggestions were expanded from. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["sourceKeyword"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Ahrefs keyword ideas output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Ahrefs Keyword Ideas","tags":["ahrefs"],"x-payment-info":{"price":{"currency":"USD","max":"0.019500","min":"0.001500","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/ahrefs.keywords":{"post":{"description":"Get the Ahrefs keyword-difficulty metrics for any search term: the difficulty score (0-100) and the number of referring domains a page needs to rank in the top 10 - as normalized JSON.\n\n**Price:** billed per result - \\$1.50 per 1,000 requests base + \\$18.00 per 1,000 results, capped at \\$19.50 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"ahrefs_keywords","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"country":"us","keyword":"seo tools"},"schema":{"additionalProperties":false,"example":{"country":"us","keyword":"seo tools"},"properties":{"country":{"default":"us","description":"Two-letter country code that scopes volume and difficulty (e.g. us, gb, de).","type":"string"},"keyword":{"description":"The search term to analyze (e.g. \"seo tools\").","type":"string"}},"required":["keyword"],"title":"Ahrefs keyword metrics input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Keyword-difficulty records: the difficulty score and the referring-domain gap needed to rank in the top 10. Populated whenever the provider has data for the entity.","items":{"properties":{"country":{"description":"Two-letter country code the metrics are scoped to.","type":"string"},"difficulty":{"description":"Ahrefs Keyword Difficulty, 0-100.","type":"integer"},"keyword":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"referringDomainsToRank":{"description":"Estimated number of referring domains a page needs to rank in the top 10 for this keyword.","type":"integer"}},"required":["keyword"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Ahrefs keyword difficulty output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Ahrefs Keyword Difficulty","tags":["ahrefs"],"x-payment-info":{"price":{"currency":"USD","max":"0.019500","min":"0.001500","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/ahrefs.overview":{"post":{"description":"Get an SEO authority overview for any domain or URL: Domain Rating, total backlinks, and referring domains - as normalized JSON.\n\n**Price:** billed per result - \\$1.50 per 1,000 requests base + \\$18.00 per 1,000 results, capped at \\$19.50 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"ahrefs_overview","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"mode":"subdomains","url":"ahrefs.com"},"schema":{"additionalProperties":false,"example":{"mode":"subdomains","url":"ahrefs.com"},"properties":{"mode":{"default":"subdomains","description":"Analysis scope: subdomains covers the whole domain, exact matches only the given URL.","enum":["exact","subdomains"],"type":"string"},"url":{"description":"The domain or page URL to analyze (e.g. ahrefs.com).","type":"string"}},"required":["url"],"title":"Ahrefs domain overview input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Domain authority records: the requested domain plus its Domain Rating, total backlinks, and referring-domain counts. Populated whenever the provider has data for the entity.","items":{"properties":{"backlinks":{"description":"Total number of backlinks pointing to the domain.","type":"integer"},"dofollowBacklinksPct":{"description":"Percentage (0-100) of backlinks that are dofollow.","type":"integer"},"dofollowReferringDomainsPct":{"description":"Percentage (0-100) of referring domains that provide a dofollow link.","type":"integer"},"domain":{"description":"The domain or URL the metrics are scoped to. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"domainRating":{"description":"Ahrefs Domain Rating, 0-100, measuring backlink-profile strength.","type":"number"},"mode":{"description":"Analysis scope used: subdomains (whole domain) or exact (the given URL only).","type":"string"},"referringDomains":{"description":"Number of unique referring domains linking to the domain.","type":"integer"}},"required":["domain"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Ahrefs domain overview output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Ahrefs Domain Overview","tags":["ahrefs"],"x-payment-info":{"price":{"currency":"USD","max":"0.019500","min":"0.001500","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/airbnb.search":{"post":{"description":"Search Airbnb listings by location and dates with optional price, beds/bedrooms/bathrooms, and guest-party filters and get results (name, total-stay price label, rating, host) as normalized JSON.\n\n**Price:** billed per result - \\$0.08 per 1,000 requests base + \\$1.50 per 1,000 results, capped at \\$30.08 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"airbnb_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"adults":2,"limit":3,"location":"San Diego","minBedrooms":3},"schema":{"additionalProperties":false,"example":{"adults":2,"limit":3,"location":"San Diego","minBedrooms":3},"properties":{"adults":{"description":"Number of adult guests (e.g. 2).","minimum":1,"type":"integer"},"checkIn":{"description":"Check-in date in YYYY-MM-DD format (e.g. 2026-07-01).","format":"date","pattern":"^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$","type":"string"},"checkOut":{"description":"Check-out date in YYYY-MM-DD format (e.g. 2026-07-05).","format":"date","pattern":"^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$","type":"string"},"children":{"description":"Number of child guests (e.g. 1).","minimum":0,"type":"integer"},"currency":{"default":"USD","description":"Currency code for prices (e.g. EUR).","enum":["USD","CZK","AUD","BRL","BGN","CAD","CLP","CNY","COP","CRC","HRK","DKK","EGP","AED","EUR","GHS","HKD","HUF","INR","IDR","ILS","JPY","KZT","KES","MYR","MXN","MAD","TWD","NZD","NOK","PEN","PHP","PLN","GBP","QAR","RON","SAR","SGD","ZAR","KRW","SEK","CHF","THB","TRY","UGX","UAH","UYU","VND"],"type":"string"},"infants":{"description":"Number of infant guests (e.g. 1).","minimum":0,"type":"integer"},"limit":{"description":"Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.","maximum":20,"minimum":1,"type":"integer"},"location":{"description":"Location to search listings in (e.g. London).","type":"string"},"minBathrooms":{"description":"Minimum number of bathrooms (e.g. 2).","minimum":0,"type":"integer"},"minBedrooms":{"description":"Minimum number of bedrooms (e.g. 2).","minimum":0,"type":"integer"},"minBeds":{"description":"Minimum number of beds (e.g. 2).","minimum":0,"type":"integer"},"pets":{"description":"Number of pets; only pet-friendly listings are returned when set (e.g. 1).","minimum":0,"type":"integer"},"priceMax":{"description":"Maximum search price in the selected currency (e.g. 300).","minimum":0,"type":"integer"},"priceMin":{"description":"Minimum search price in the selected currency (e.g. 50).","minimum":0,"type":"integer"}},"required":["location"],"title":"Airbnb search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Listing records: name, total-stay price label, rating, location, host info, and availability details. Populated whenever the provider has data for the entity.","items":{"properties":{"hostName":{"type":"string"},"id":{"description":"Airbnb listing identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"Primary listing image URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"isAvailable":{"type":"boolean"},"isSuperhost":{"type":"boolean"},"latitude":{"type":"number"},"location":{"description":"Location subtitle.","type":"string"},"longitude":{"type":"number"},"personCapacity":{"type":"integer"},"price":{"description":"Total-stay price label returned by Airbnb (e.g. $3,149 total).","type":"string"},"propertyType":{"type":"string"},"rating":{"description":"Guest satisfaction rating (0-5).","type":"number"},"reviewsCount":{"type":"integer"},"roomType":{"type":"string"},"title":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","url","title"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Airbnb search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Airbnb Search","tags":["airbnb"],"x-payment-info":{"price":{"currency":"USD","max":"0.030080","min":"0.000080","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/alibaba.search":{"post":{"description":"Search Alibaba by keyword and get up to 25 wholesale listings (title, price range, minimum order, and supplier) in one normalized response.\n\n**Price:** billed per result - \\$1.20 per 1,000 results, capped at \\$30.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"alibaba_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"query":"bluetooth speaker"},"schema":{"additionalProperties":false,"example":{"limit":3,"query":"bluetooth speaker"},"properties":{"limit":{"description":"Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.","maximum":25,"minimum":1,"type":"integer"},"query":{"description":"Keywords to search for on Alibaba (e.g. \"bluetooth speaker wholesale\").","type":"string"}},"required":["query"],"title":"Alibaba search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Search result wrapper, or null when nothing matched.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Matching Alibaba wholesale listings. Populated whenever the provider has data for the entity.","items":{"properties":{"countryCode":{"description":"Supplier country ISO code, e.g. \"CN\".","type":"string"},"image":{"description":"Primary product image URL.","type":"string"},"moq":{"description":"Minimum order quantity text, e.g. \"Min. order: 1 piece\".","type":"string"},"priceText":{"description":"Price or price range as displayed, e.g. \"$40.80-45.80\" (Alibaba lists ranges, not a single numeric value).","type":"string"},"promotionPrice":{"description":"Discounted promotional price when the listing is on sale; empty otherwise.","type":"string"},"rating":{"description":"Average buyer review score, 0-5; 0 when the listing has no reviews.","type":"number"},"reviewCount":{"description":"Number of buyer reviews; 0 when none.","type":"integer"},"supplierName":{"description":"Supplier / company name.","type":"string"},"supplierYears":{"description":"Gold Supplier tenure text, e.g. \"3 yrs\"; empty when not a Gold Supplier.","type":"string"},"title":{"description":"Listing title as shown on Alibaba (may contain the supplier's inline markup). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Canonical product detail page URL (tracking query params stripped). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["title","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when the search returned at least one listing.","type":"boolean"}},"required":["found","data"],"title":"Alibaba search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Alibaba Search","tags":["alibaba"],"x-payment-info":{"price":{"currency":"USD","max":"0.030000","min":"0.000000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/amazon.asins":{"post":{"description":"Look up to 10 Amazon products in one call by ASIN (title, brand, price, ratings, images, and attributes) as normalized JSON.\n\n**Price:** billed per asin - \\$3.50 per 1,000 asins, capped at \\$35.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"amazon_asins","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"asins":["B09G9FPHY6"],"limit":3},"schema":{"additionalProperties":false,"example":{"asins":["B09G9FPHY6"],"limit":3},"properties":{"amazonDomain":{"default":"amazon.com","description":"Amazon marketplace domain to fetch products from (e.g. amazon.com, amazon.de, amazon.co.uk).","type":"string"},"asins":{"description":"Up to 10 Amazon ASINs to look up (e.g. [\"B0CHX1W1XY\", \"B09G9FPHY6\"]).","items":{"type":"string"},"maxItems":10,"minItems":1,"type":"array"},"limit":{"description":"Maximum number of results to return (1-10, default 10). You are billed per result returned, so a lower limit costs less.","maximum":10,"minimum":1,"type":"integer"}},"required":["asins"],"title":"Amazon products by ASIN input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Product records: ASIN, title, brand, price, ratings, images, and attributes. Populated whenever the provider has data for the entity.","items":{"properties":{"asin":{"description":"Amazon Standard Identification Number. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"brand":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"condition":{"type":"string"},"currency":{"type":"string"},"image":{"description":"Primary product image URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"inStock":{"type":"boolean"},"price":{"description":"Buy-box price; 0 when no offer is available.","type":"number"},"rating":{"description":"Average star rating, 0-5.","type":"number"},"reviewsCount":{"type":"integer"},"sellerName":{"type":"string"},"title":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["asin","title","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Amazon products by ASIN output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Amazon Products by ASIN","tags":["amazon"],"x-payment-info":{"price":{"currency":"USD","max":"0.035000","min":"0.000000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/amazon.bestsellers":{"post":{"description":"List the top-ranked products of any Amazon Best Sellers category (rank, title, price, and rating) in one normalized request.\n\n**Price:** billed per result - \\$4.10 per 1,000 results, capped at \\$82.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"amazon_bestsellers","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"url":"https://www.amazon.com/gp/bestsellers/electronics"},"schema":{"additionalProperties":false,"example":{"limit":3,"url":"https://www.amazon.com/gp/bestsellers/electronics"},"properties":{"limit":{"description":"Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.","maximum":20,"minimum":1,"type":"integer"},"url":{"description":"Amazon Best Sellers category URL (e.g. https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics).","type":"string"}},"required":["url"],"title":"Amazon bestsellers input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Best-sellers wrapper, or null when the category returned nothing.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Best-seller product records ordered by category rank. Populated whenever the provider has data for the entity.","items":{"properties":{"asin":{"description":"Amazon Standard Identification Number. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"categoryName":{"description":"Best Sellers category name the product ranks in.","type":"string"},"currency":{"description":"Price currency symbol or code, e.g. \"$\".","type":"string"},"image":{"description":"Primary product thumbnail image URL.","type":"string"},"offersCount":{"description":"Number of available offers; 0 when unknown.","type":"integer"},"price":{"description":"Listed price; 0 when no offer is available.","type":"number"},"rank":{"description":"Best-seller rank within the category (1 = top).","type":"integer"},"rating":{"description":"Average star rating, 0-5; 0 when unrated.","type":"number"},"reviewsCount":{"description":"Number of customer reviews; 0 when none.","type":"integer"},"title":{"description":"Product title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Canonical product detail page URL (tracking query params stripped). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["title","url","asin"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when the category returned at least one best-seller.","type":"boolean"}},"required":["found","data"],"title":"Amazon bestsellers output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Amazon Bestsellers","tags":["amazon"],"x-payment-info":{"price":{"currency":"USD","max":"0.082000","min":"0.000000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/amazon.product":{"post":{"description":"Fetch full Amazon product details (title, brand, price when in stock, images, ratings, review count, variants, and attributes) from a product URL.\n\n**Price:** billed per result - \\$1.00 per 1,000 requests base + \\$8.10 per 1,000 results, capped at \\$9.10 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"amazon_product","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.amazon.com/dp/B00NTCH52W"},"schema":{"additionalProperties":false,"example":{"url":"https://www.amazon.com/dp/B00NTCH52W"},"properties":{"url":{"description":"Full Amazon product URL (e.g. https://www.amazon.com/dp/B0CX23V2ZK).","type":"string"}},"required":["url"],"title":"Amazon product input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Product wrapper, or null when the URL resolved to no product.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Product detail records (one per requested product URL). Populated whenever the provider has data for the entity.","items":{"properties":{"asin":{"description":"Amazon Standard Identification Number. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"brand":{"description":"Manufacturer or brand name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"category":{"description":"Category breadcrumb path, e.g. \"Health \u0026 Household \u003e Household Supplies\".","type":"string"},"condition":{"description":"Item condition, e.g. \"New\"; empty when not reported.","type":"string"},"currency":{"description":"Price currency symbol or code, e.g. \"$\".","type":"string"},"description":{"description":"Product description text; empty when the listing has none.","type":"string"},"features":{"description":"Bullet-point feature list from the listing.","items":{"type":"string"},"type":"array"},"image":{"description":"Primary product image URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"images":{"description":"High-resolution product image URLs.","items":{"type":"string"},"type":"array"},"inStock":{"description":"True when the product is purchasable.","type":"boolean"},"price":{"description":"Current buy-box price as a numeric amount; 0 when the listing has no buyable price (out of stock).","type":"number"},"rating":{"description":"Average customer star rating, 0-5; 0 when unrated.","type":"number"},"reviewsCount":{"description":"Total number of customer reviews; 0 when none.","type":"integer"},"sellerName":{"description":"Name of the seller fulfilling the buy box.","type":"string"},"title":{"description":"Product title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Canonical product detail page URL (tracking query params stripped). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["title","url","asin"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when the product was found.","type":"boolean"}},"required":["found","data"],"title":"Amazon product output","type":"object","x-anyapi-heavy":true},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Amazon Product","tags":["amazon"],"x-payment-info":{"price":{"currency":"USD","max":"0.009100","min":"0.001000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/amazon.reviews":{"post":{"description":"Pull up to 50 customer reviews for any Amazon product by ASIN or URL: rating, title, text, date, and verified-purchase badge.\n\n**Price:** \\$16.25 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"amazon_reviews","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"product":"B07PXGQC1Q"},"schema":{"additionalProperties":false,"example":{"limit":3,"product":"B07PXGQC1Q"},"properties":{"endDate":{"description":"Only return reviews on or before this date, inclusive, in YYYY-MM-DD format (e.g. 2026-06-30).","type":"string"},"keywords":{"description":"Only return reviews whose text contains one of these keywords (e.g. [\"battery\", \"screen\"]).","items":{"type":"string"},"type":"array"},"limit":{"description":"Maximum number of results to return (1-50, default 50). You are billed per result returned, so a lower limit costs less.","maximum":50,"minimum":1,"type":"integer"},"product":{"description":"Amazon product ASIN or full product URL (e.g. B07CMS5Q6P).","type":"string"},"ratings":{"description":"Only return reviews whose star rating is in this set (e.g. [\"5\", \"4\"] for 4 and 5 star reviews); omit for all ratings.","items":{"enum":["1","2","3","4","5"],"type":"string"},"type":"array"},"region":{"default":"amazon.com","description":"Amazon marketplace domain the product ASIN belongs to (e.g. amazon.co.uk).","enum":["amazon.com","amazon.ca","amazon.de","amazon.fr","amazon.co.uk","amazon.it","amazon.es","amazon.com.au","amazon.co.jp","amazon.com.br","amazon.com.mx","amazon.nl","amazon.ie","amazon.se","amazon.com.tr","amazon.ae","amazon.sg","amazon.sa","amazon.pl","amazon.com.be","amazon.eg","amazon.in"],"type":"string"},"sort":{"default":"helpful","description":"Review sort order: most helpful first or most recent first (e.g. recent).","enum":["helpful","recent"],"type":"string"},"startDate":{"description":"Only return reviews on or after this date, inclusive, in YYYY-MM-DD format (e.g. 2026-01-01).","type":"string"},"verifiedOnly":{"default":false,"description":"Set true to return only verified-purchase reviews (e.g. true).","type":"boolean"}},"required":["product"],"title":"Amazon reviews input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Reviews wrapper, or null when the product returned no reviews.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Customer review records. Populated whenever the provider has data for the entity.","items":{"properties":{"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. 0 when the review date is not reported in a parseable form.","type":"number"},"helpfulVotes":{"description":"Number of \"helpful\" votes the review received; 0 when none.","type":"integer"},"rating":{"description":"Star rating the reviewer gave, 1-5; 0 when not reported.","type":"number"},"reviewer":{"description":"Reviewer display name; empty when withheld.","type":"string"},"text":{"description":"Full review body text. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Review headline / title; empty when the review has none.","type":"string"},"verifiedPurchase":{"description":"True when Amazon marks the review a verified purchase.","type":"boolean"}},"required":["rating","text"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when at least one review was returned.","type":"boolean"}},"required":["found","data"],"title":"Amazon reviews output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Amazon Reviews","tags":["amazon"],"x-payment-info":{"price":{"currency":"USD","max":"0.040020","min":"0.016250","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/amazon.search":{"post":{"description":"Search Amazon from any search or category URL and get up to 20 matching products (title, price, rating, and thumbnail) in one normalized response.\n\n**Price:** billed per result - \\$3.50 per 1,000 results, capped at \\$70.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"amazon_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"url":"https://www.amazon.com/s?k=laptop"},"schema":{"additionalProperties":false,"example":{"limit":3,"url":"https://www.amazon.com/s?k=laptop"},"properties":{"limit":{"description":"Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.","maximum":20,"minimum":1,"type":"integer"},"url":{"description":"Amazon search or category URL to pull results from (e.g. https://www.amazon.com/s?k=gaming+mouse).","type":"string"}},"required":["url"],"title":"Amazon search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Search result wrapper, or null when nothing matched.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Matching Amazon product records. Populated whenever the provider has data for the entity.","items":{"properties":{"asin":{"description":"Amazon Standard Identification Number; use it with the Amazon Products by ASIN SKU for full detail. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"currency":{"description":"Price currency symbol or code, e.g. \"$\".","type":"string"},"image":{"description":"Primary product thumbnail image URL.","type":"string"},"isSponsored":{"description":"True when the result is a sponsored placement.","type":"boolean"},"listPrice":{"description":"Pre-discount list price when on sale; 0 when not discounted.","type":"number"},"offersCount":{"description":"Number of available offers; 0 when unknown.","type":"integer"},"position":{"description":"1-based position of the result on the search page.","type":"integer"},"price":{"description":"Current price as a numeric amount; 0 when no offer is available.","type":"number"},"rating":{"description":"Average star rating, 0-5; 0 when unrated.","type":"number"},"reviewsCount":{"description":"Number of customer reviews; 0 when none.","type":"integer"},"title":{"description":"Product title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["title","asin"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when the search returned at least one product.","type":"boolean"}},"required":["found","data"],"title":"Amazon search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Amazon Search","tags":["amazon"],"x-payment-info":{"price":{"currency":"USD","max":"0.070000","min":"0.000000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/apollo.organization":{"post":{"description":"Get a complete organization profile by ID including company, industry, employee, revenue, funding, location, and technology data.\n\n**Price:** \\$12.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"apollo_organization","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"organizationId":"5e66b6381e05b4008c8331b8"},"schema":{"additionalProperties":false,"example":{"organizationId":"5e66b6381e05b4008c8331b8"},"properties":{"organizationId":{"description":"Organization identifier returned by an Apollo organization endpoint.","minLength":1,"type":"string"}},"required":["organizationId"],"title":"Apollo Organization input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"annualRevenue":{"description":"Estimated annual revenue in USD.","minimum":0,"type":"number"},"annualRevenueDisplay":{"description":"Human-readable estimated annual revenue.","type":"string"},"city":{"description":"Headquarters city.","type":"string"},"country":{"description":"Headquarters country.","type":"string"},"description":{"description":"Organization summary.","type":"string"},"domain":{"description":"Primary organization domain.","type":"string"},"employeeCount":{"description":"Estimated employee count.","minimum":0,"type":"integer"},"facebookUrl":{"description":"Canonical Facebook page URL.","format":"uri","type":"string"},"foundedYear":{"description":"Year the organization was founded.","type":"integer"},"id":{"description":"Stable organization identifier.","type":"string"},"image":{"description":"Organization logo URL.","format":"uri","type":"string"},"industries":{"description":"Industries associated with the organization.","items":{"type":"string"},"type":"array"},"industry":{"description":"Primary industry.","type":"string"},"keywords":{"description":"Keywords associated with the organization.","items":{"type":"string"},"type":"array"},"latestFundingStage":{"description":"Latest disclosed funding stage.","type":"string"},"latestFundingUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"linkedinUrl":{"description":"Canonical LinkedIn company URL.","format":"uri","type":"string"},"naicsCodes":{"description":"NAICS industry codes.","items":{"type":"string"},"type":"array"},"name":{"description":"Organization name.","type":"string"},"postalCode":{"description":"Headquarters postal code.","type":"string"},"sicCodes":{"description":"SIC industry codes.","items":{"type":"string"},"type":"array"},"state":{"description":"Headquarters state or region.","type":"string"},"streetAddress":{"description":"Street address.","type":"string"},"technologyNames":{"description":"Technologies detected at the organization.","items":{"type":"string"},"type":"array"},"totalFunding":{"description":"Total disclosed funding in USD.","minimum":0,"type":"number"},"totalFundingDisplay":{"description":"Human-readable total disclosed funding.","type":"string"},"twitterUrl":{"description":"Canonical X or Twitter profile URL.","format":"uri","type":"string"},"websiteUrl":{"description":"Canonical organization website URL.","format":"uri","type":"string"}},"required":["id","name"],"type":"object"}]},"found":{"description":"Whether a matching organization was found.","type":"boolean"}},"required":["found","data"],"title":"Apollo Organization output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Apollo Organization","tags":["apollo"],"x-payment-info":{"price":{"amount":"0.012000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/apollo.organization_enrich":{"post":{"description":"Enrich an organization by domain with company profile, industry, employee, revenue, funding, location, and technology data.\n\n**Price:** \\$12.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"apollo_organization_enrich","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"domain":"apollo.io"},"schema":{"additionalProperties":false,"example":{"domain":"apollo.io"},"properties":{"domain":{"description":"Organization domain without a path, such as apollo.io.","minLength":1,"type":"string"}},"required":["domain"],"title":"Apollo Organization Enrichment input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"annualRevenue":{"description":"Estimated annual revenue in USD.","minimum":0,"type":"number"},"annualRevenueDisplay":{"description":"Human-readable estimated annual revenue.","type":"string"},"city":{"description":"Headquarters city.","type":"string"},"country":{"description":"Headquarters country.","type":"string"},"description":{"description":"Organization summary.","type":"string"},"domain":{"description":"Primary organization domain.","type":"string"},"employeeCount":{"description":"Estimated employee count.","minimum":0,"type":"integer"},"facebookUrl":{"description":"Canonical Facebook page URL.","format":"uri","type":"string"},"foundedYear":{"description":"Year the organization was founded.","type":"integer"},"id":{"description":"Stable organization identifier.","type":"string"},"image":{"description":"Organization logo URL.","format":"uri","type":"string"},"industries":{"description":"Industries associated with the organization.","items":{"type":"string"},"type":"array"},"industry":{"description":"Primary industry.","type":"string"},"keywords":{"description":"Keywords associated with the organization.","items":{"type":"string"},"type":"array"},"latestFundingStage":{"description":"Latest disclosed funding stage.","type":"string"},"latestFundingUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"linkedinUrl":{"description":"Canonical LinkedIn company URL.","format":"uri","type":"string"},"naicsCodes":{"description":"NAICS industry codes.","items":{"type":"string"},"type":"array"},"name":{"description":"Organization name.","type":"string"},"postalCode":{"description":"Headquarters postal code.","type":"string"},"sicCodes":{"description":"SIC industry codes.","items":{"type":"string"},"type":"array"},"state":{"description":"Headquarters state or region.","type":"string"},"streetAddress":{"description":"Street address.","type":"string"},"technologyNames":{"description":"Technologies detected at the organization.","items":{"type":"string"},"type":"array"},"totalFunding":{"description":"Total disclosed funding in USD.","minimum":0,"type":"number"},"totalFundingDisplay":{"description":"Human-readable total disclosed funding.","type":"string"},"twitterUrl":{"description":"Canonical X or Twitter profile URL.","format":"uri","type":"string"},"websiteUrl":{"description":"Canonical organization website URL.","format":"uri","type":"string"}},"required":["id","name"],"type":"object"}]},"found":{"description":"Whether a matching organization was found.","type":"boolean"}},"required":["found","data"],"title":"Apollo Organization Enrichment output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Apollo Organization Enrichment","tags":["apollo"],"x-payment-info":{"price":{"amount":"0.012000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/apollo.organization_jobs":{"post":{"description":"Get current job postings for an organization by ID with title, location, source URL, and timestamps.\n\n**Price:** \\$12.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"apollo_organization_jobs","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"organizationId":"5e66b6381e05b4008c8331b8"},"schema":{"additionalProperties":false,"example":{"organizationId":"5e66b6381e05b4008c8331b8"},"properties":{"organizationId":{"description":"Organization identifier returned by an Apollo organization endpoint.","minLength":1,"type":"string"}},"required":["organizationId"],"title":"Apollo Organization Jobs input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"jobs":{"description":"Current job postings.","items":{"properties":{"city":{"description":"Job city.","type":"string"},"country":{"description":"Job country.","type":"string"},"id":{"description":"Stable job posting identifier.","type":"string"},"lastSeenUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"postedUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"state":{"description":"Job state or region.","type":"string"},"title":{"description":"Job title.","type":"string"},"url":{"description":"Canonical job posting URL.","format":"uri","type":"string"}},"required":["id","title","url"],"type":"object"},"type":"array"},"limit":{"description":"Page size returned.","minimum":0,"type":"integer"},"page":{"description":"One-based page returned.","minimum":1,"type":"integer"},"total":{"description":"Total current job postings.","minimum":0,"type":"integer"},"totalPages":{"description":"Total available pages.","minimum":0,"type":"integer"}},"required":["jobs","page","limit","total","totalPages"],"type":"object"}]},"found":{"description":"Whether any current job postings were found.","type":"boolean"}},"required":["found","data"],"title":"Apollo Organization Jobs output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Apollo Organization Jobs","tags":["apollo"],"x-payment-info":{"price":{"amount":"0.012000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/apollo.organization_news":{"post":{"description":"Search news related to one or more organizations with article details, categories, and pagination totals.\n\n**Price:** \\$12.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"apollo_organization_news","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"organizationIds":["5e66b6381e05b4008c8331b8"],"page":1},"schema":{"additionalProperties":false,"example":{"limit":3,"organizationIds":["5e66b6381e05b4008c8331b8"],"page":1},"properties":{"keywords":{"description":"Optional keywords to match in related articles.","minLength":1,"type":"string"},"limit":{"default":25,"description":"Maximum articles returned on this page.","maximum":100,"minimum":1,"type":"integer"},"organizationIds":{"description":"Organization identifiers whose related news should be returned.","items":{"minLength":1,"type":"string"},"minItems":1,"type":"array","uniqueItems":true},"page":{"default":1,"description":"One-based result page.","minimum":1,"type":"integer"}},"required":["organizationIds"],"title":"Apollo Organization News input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"articles":{"description":"Related news articles on this page.","items":{"properties":{"domain":{"description":"Publishing domain.","type":"string"},"eventCategories":{"description":"Detected business event categories.","items":{"type":"string"},"type":"array"},"id":{"description":"Stable article identifier.","type":"string"},"organizationIds":{"description":"Organization identifiers associated with the article.","items":{"type":"string"},"type":"array"},"publishedUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"snippet":{"description":"Article summary or excerpt.","type":"string"},"title":{"description":"Article title.","type":"string"},"url":{"description":"Canonical article URL.","format":"uri","type":"string"}},"required":["id","title","url"],"type":"object"},"type":"array"},"limit":{"description":"Page size returned.","minimum":0,"type":"integer"},"page":{"description":"One-based page returned.","minimum":1,"type":"integer"},"total":{"description":"Total matching articles.","minimum":0,"type":"integer"},"totalPages":{"description":"Total available pages.","minimum":0,"type":"integer"}},"required":["articles","page","limit","total","totalPages"],"type":"object"}]},"found":{"description":"Whether any related articles were found.","type":"boolean"}},"required":["found","data"],"title":"Apollo Organization News output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Apollo Organization News","tags":["apollo"],"x-payment-info":{"price":{"amount":"0.012000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/apollo.organizations_bulk_enrich":{"post":{"description":"Enrich up to 10 organization domains in one request with normalized company profile, industry, employee, revenue, funding, and location data.\n\n**Price:** \\$60.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"apollo_organizations_bulk_enrich","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"domains":["apollo.io","openai.com"]},"schema":{"additionalProperties":false,"example":{"domains":["apollo.io","openai.com"]},"properties":{"domains":{"description":"Organization domains to enrich, with at most 10 domains per request.","items":{"minLength":1,"type":"string"},"maxItems":10,"minItems":1,"type":"array","uniqueItems":true}},"required":["domains"],"title":"Apollo Bulk Organization Enrichment input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"enriched":{"description":"Number of uniquely enriched organizations.","minimum":0,"type":"integer"},"missing":{"description":"Number of requested domains without a match.","minimum":0,"type":"integer"},"organizations":{"description":"Enriched organizations.","items":{"properties":{"annualRevenue":{"description":"Estimated annual revenue in USD.","minimum":0,"type":"number"},"annualRevenueDisplay":{"description":"Human-readable estimated annual revenue.","type":"string"},"city":{"description":"Headquarters city.","type":"string"},"country":{"description":"Headquarters country.","type":"string"},"description":{"description":"Organization summary.","type":"string"},"domain":{"description":"Primary organization domain.","type":"string"},"employeeCount":{"description":"Estimated employee count.","minimum":0,"type":"integer"},"facebookUrl":{"description":"Canonical Facebook page URL.","format":"uri","type":"string"},"foundedYear":{"description":"Year the organization was founded.","type":"integer"},"id":{"description":"Stable organization identifier.","type":"string"},"image":{"description":"Organization logo URL.","format":"uri","type":"string"},"industries":{"description":"Industries associated with the organization.","items":{"type":"string"},"type":"array"},"industry":{"description":"Primary industry.","type":"string"},"keywords":{"description":"Keywords associated with the organization.","items":{"type":"string"},"type":"array"},"linkedinUrl":{"description":"Canonical LinkedIn company URL.","format":"uri","type":"string"},"naicsCodes":{"description":"NAICS industry codes.","items":{"type":"string"},"type":"array"},"name":{"description":"Organization name.","type":"string"},"postalCode":{"description":"Headquarters postal code.","type":"string"},"sicCodes":{"description":"SIC industry codes.","items":{"type":"string"},"type":"array"},"state":{"description":"Headquarters state or region.","type":"string"},"streetAddress":{"description":"Street address.","type":"string"},"twitterUrl":{"description":"Canonical X or Twitter profile URL.","format":"uri","type":"string"},"websiteUrl":{"description":"Canonical organization website URL.","format":"uri","type":"string"}},"required":["id","name"],"type":"object"},"type":"array"},"requested":{"description":"Number of requested domains.","minimum":0,"type":"integer"}},"required":["organizations","requested","enriched","missing"],"type":"object"}]},"found":{"description":"Whether any requested organizations were enriched.","type":"boolean"}},"required":["found","data"],"title":"Apollo Bulk Organization Enrichment output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Apollo Bulk Organization Enrichment","tags":["apollo"],"x-payment-info":{"price":{"amount":"0.060000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/apollo.organizations_search":{"post":{"description":"Search organizations by location, employee range, industry, and keywords with normalized company records and pagination totals.\n\n**Price:** \\$12.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"apollo_organizations_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"keywords":"Apollo","limit":3,"page":1},"schema":{"additionalProperties":false,"example":{"keywords":"Apollo","limit":3,"page":1},"properties":{"employeeRanges":{"description":"Employee-count ranges in Apollo notation, such as 51,200.","items":{"minLength":1,"type":"string"},"type":"array"},"industryIds":{"description":"Apollo industry tag identifiers to match.","items":{"minLength":1,"type":"string"},"type":"array"},"keywords":{"description":"Keywords to match across organization records.","minLength":1,"type":"string"},"limit":{"default":25,"description":"Maximum organizations returned on this page.","maximum":100,"minimum":1,"type":"integer"},"locations":{"description":"Headquarters locations to match.","items":{"minLength":1,"type":"string"},"type":"array"},"page":{"default":1,"description":"One-based result page.","maximum":500,"minimum":1,"type":"integer"}},"title":"Apollo Organization Search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"limit":{"description":"Page size returned by the upstream database.","minimum":0,"type":"integer"},"organizations":{"description":"Organizations on this page.","items":{"properties":{"annualRevenue":{"description":"Estimated annual revenue in USD.","minimum":0,"type":"number"},"annualRevenueDisplay":{"description":"Human-readable estimated annual revenue.","type":"string"},"domain":{"description":"Primary organization domain.","type":"string"},"facebookUrl":{"description":"Canonical Facebook page URL.","format":"uri","type":"string"},"foundedYear":{"description":"Year the organization was founded.","type":"integer"},"id":{"description":"Stable organization identifier.","type":"string"},"image":{"description":"Organization logo URL.","format":"uri","type":"string"},"linkedinUrl":{"description":"Canonical LinkedIn company URL.","format":"uri","type":"string"},"naicsCodes":{"description":"NAICS industry codes.","items":{"type":"string"},"type":"array"},"name":{"description":"Organization name.","type":"string"},"sicCodes":{"description":"SIC industry codes.","items":{"type":"string"},"type":"array"},"twitterUrl":{"description":"Canonical X or Twitter profile URL.","format":"uri","type":"string"},"websiteUrl":{"description":"Canonical organization website URL.","format":"uri","type":"string"}},"required":["id","name"],"type":"object"},"type":"array"},"page":{"description":"One-based page returned.","minimum":1,"type":"integer"},"total":{"description":"Total matching organizations.","minimum":0,"type":"integer"},"totalPages":{"description":"Total available pages.","minimum":0,"type":"integer"}},"required":["organizations","page","limit","total","totalPages"],"type":"object"}]},"found":{"description":"Whether any matching organizations were found.","type":"boolean"}},"required":["found","data"],"title":"Apollo Organization Search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Apollo Organization Search","tags":["apollo"],"x-payment-info":{"price":{"amount":"0.012000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/apollo.people_search":{"post":{"description":"Search people by title, seniority, person or organization location, employee range, and keywords with normalized profile summaries.\n\n**Price:** \\$10.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"apollo_people_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"page":1,"titles":["CEO"]},"schema":{"additionalProperties":false,"example":{"limit":3,"page":1,"titles":["CEO"]},"properties":{"employeeRanges":{"description":"Organization employee-count ranges in Apollo notation, such as 51,200.","items":{"minLength":1,"type":"string"},"type":"array"},"keywords":{"description":"Keywords to match across people records.","minLength":1,"type":"string"},"limit":{"default":25,"description":"Maximum people returned on this page.","maximum":100,"minimum":1,"type":"integer"},"organizationLocations":{"description":"Organization headquarters locations to match.","items":{"minLength":1,"type":"string"},"type":"array"},"page":{"default":1,"description":"One-based result page.","maximum":500,"minimum":1,"type":"integer"},"personLocations":{"description":"Person locations to match.","items":{"minLength":1,"type":"string"},"type":"array"},"seniorities":{"description":"Seniority levels to match.","items":{"enum":["owner","founder","c_suite","partner","vp","head","director","manager","senior","entry"],"type":"string"},"type":"array"},"titles":{"description":"Job titles to match.","items":{"minLength":1,"type":"string"},"type":"array"}},"title":"Apollo People Search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"people":{"description":"People on this result page.","items":{"properties":{"firstName":{"description":"Person first name.","type":"string"},"hasCity":{"description":"Whether city data is available through enrichment.","type":"boolean"},"hasCountry":{"description":"Whether country data is available through enrichment.","type":"boolean"},"hasDirectPhone":{"description":"Whether direct phone data is available through asynchronous enrichment.","type":"boolean"},"hasEmail":{"description":"Whether an email is available through enrichment.","type":"boolean"},"hasState":{"description":"Whether state or region data is available through enrichment.","type":"boolean"},"id":{"description":"Stable person identifier.","type":"string"},"lastNameInitial":{"description":"Obfuscated last-name initial.","type":"string"},"lastRefreshedUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"organization":{"description":"Availability summary for the current organization.","properties":{"hasCity":{"description":"Whether organization city data is available.","type":"boolean"},"hasCountry":{"description":"Whether organization country data is available.","type":"boolean"},"hasEmployeeCount":{"description":"Whether organization employee-count data is available.","type":"boolean"},"hasIndustry":{"description":"Whether industry data is available.","type":"boolean"},"hasPhone":{"description":"Whether an organization phone is available.","type":"boolean"},"hasPostalCode":{"description":"Whether organization postal-code data is available.","type":"boolean"},"hasRevenue":{"description":"Whether organization revenue data is available.","type":"boolean"},"hasState":{"description":"Whether organization state data is available.","type":"boolean"},"name":{"description":"Current organization name.","type":"string"}},"type":"object"},"title":{"description":"Current job title.","type":"string"}},"required":["id","firstName"],"type":"object"},"type":"array"},"total":{"description":"Total matching people.","minimum":0,"type":"integer"}},"required":["people","total"],"type":"object"}]},"found":{"description":"Whether any matching people were found.","type":"boolean"}},"required":["found","data"],"title":"Apollo People Search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Apollo People Search","tags":["apollo"],"x-payment-info":{"price":{"amount":"0.010000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/apollo.person_enrich":{"post":{"description":"Enrich a person by email, LinkedIn URL, or name and organization with contact, role, location, and company data.\n\n**Price:** \\$12.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"apollo_person_enrich","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"domain":"apollo.io","firstName":"Tim","lastName":"Zheng"},"schema":{"additionalProperties":false,"anyOf":[{"required":["email"]},{"required":["linkedinUrl"]},{"required":["firstName","lastName","organizationName"]},{"required":["firstName","lastName","domain"]}],"example":{"domain":"apollo.io","firstName":"Tim","lastName":"Zheng"},"properties":{"domain":{"description":"Organization domain used with the person's name.","minLength":1,"type":"string"},"email":{"description":"Work or personal email used to identify the person.","format":"email","type":"string"},"firstName":{"description":"Person first name, used with lastName and an organization identifier.","minLength":1,"type":"string"},"lastName":{"description":"Person last name, used with firstName and an organization identifier.","minLength":1,"type":"string"},"linkedinUrl":{"description":"LinkedIn profile URL used to identify the person.","format":"uri","type":"string"},"organizationName":{"description":"Organization name used with the person's name.","minLength":1,"type":"string"}},"title":"Apollo Person Enrichment input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"city":{"description":"City.","type":"string"},"country":{"description":"Country.","type":"string"},"departments":{"description":"Current departments.","items":{"type":"string"},"type":"array"},"email":{"description":"Available work email.","format":"email","type":"string"},"emailStatus":{"description":"Verification status of the work email.","type":"string"},"employmentHistory":{"description":"Known employment history.","items":{"properties":{"current":{"description":"Whether this is a current role.","type":"boolean"},"endUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"id":{"description":"Stable employment record identifier.","type":"string"},"organizationId":{"description":"Organization identifier.","type":"string"},"organizationName":{"description":"Organization name.","type":"string"},"startUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"title":{"description":"Role title.","type":"string"}},"required":["id"],"type":"object"},"type":"array"},"facebookUrl":{"description":"Canonical Facebook profile URL.","format":"uri","type":"string"},"firstName":{"description":"Person first name.","type":"string"},"functions":{"description":"Current business functions.","items":{"type":"string"},"type":"array"},"githubUrl":{"description":"Canonical GitHub profile URL.","format":"uri","type":"string"},"headline":{"description":"Professional headline.","type":"string"},"id":{"description":"Stable person identifier.","type":"string"},"image":{"description":"Profile image URL.","format":"uri","type":"string"},"lastName":{"description":"Person last name.","type":"string"},"linkedinUrl":{"description":"Canonical LinkedIn profile URL.","format":"uri","type":"string"},"name":{"description":"Full person name.","type":"string"},"organization":{"description":"Current organization summary.","properties":{"city":{"description":"Headquarters city.","type":"string"},"country":{"description":"Headquarters country.","type":"string"},"domain":{"description":"Primary organization domain.","type":"string"},"employeeCount":{"description":"Estimated employee count.","minimum":0,"type":"integer"},"id":{"description":"Stable organization identifier.","type":"string"},"image":{"description":"Organization logo URL.","format":"uri","type":"string"},"industry":{"description":"Primary industry.","type":"string"},"linkedinUrl":{"description":"Canonical LinkedIn company URL.","format":"uri","type":"string"},"name":{"description":"Organization name.","type":"string"},"state":{"description":"Headquarters state or region.","type":"string"},"websiteUrl":{"description":"Canonical organization website URL.","format":"uri","type":"string"}},"required":["id","name"],"type":"object"},"personalEmails":{"description":"Available personal email addresses, included automatically.","items":{"format":"email","type":"string"},"type":"array"},"postalCode":{"description":"Postal code.","type":"string"},"seniority":{"description":"Current seniority classification.","type":"string"},"state":{"description":"State or region.","type":"string"},"streetAddress":{"description":"Street address.","type":"string"},"subdepartments":{"description":"Current subdepartments.","items":{"type":"string"},"type":"array"},"timeZone":{"description":"IANA time-zone identifier.","type":"string"},"title":{"description":"Current job title.","type":"string"},"twitterUrl":{"description":"Canonical X or Twitter profile URL.","format":"uri","type":"string"}},"required":["id","name","firstName","lastName"],"type":"object"}]},"found":{"description":"Whether a matching person was found.","type":"boolean"}},"required":["found","data"],"title":"Apollo Person Enrichment output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Apollo Person Enrichment","tags":["apollo"],"x-payment-info":{"price":{"amount":"0.012000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/appstore.reviews":{"post":{"description":"Get App Store reviews for any iOS app by app ID, in any storefront country: ratings, titles, and review text.\n\n**Price:** billed per result - \\$0.10 per 1,000 results, capped at \\$10.00 per 1,000 requests.\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"appstore_reviews","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"appId":"389801252","country":"us","limit":3},"schema":{"additionalProperties":false,"example":{"appId":"389801252","country":"us","limit":3},"properties":{"appId":{"description":"Numeric App Store app ID, the digits at the end of the app's store URL without the 'id' prefix (e.g. 310633997).","type":"string"},"country":{"default":"us","description":"Two-letter App Store storefront country code to read reviews from.","type":"string"},"limit":{"description":"Maximum number of results to return (1-100, default 100). You are billed per result returned, so a lower limit costs less.","maximum":100,"minimum":1,"type":"integer"}},"required":["appId"],"title":"App Store reviews input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The result wrapper, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Review records: star rating, review title and text, reviewer nickname, app version, and review date. Populated whenever the provider has data for the entity.","items":{"properties":{"author":{"description":"Reviewer nickname. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. When the review was posted. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"helpfulVotes":{"description":"Number of helpful votes on the review.","type":"integer"},"id":{"description":"Review identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"rating":{"description":"Star rating, 1 to 5. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"text":{"description":"Review body text. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Review title.","type":"string"},"version":{"description":"App version the review was left on.","type":"string"}},"required":["rating","text"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when at least one review record was returned.","type":"boolean"}},"required":["found","data"],"title":"App Store reviews output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"App Store Reviews","tags":["appstore"],"x-payment-info":{"price":{"currency":"USD","max":"0.016250","min":"0.000000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/bluesky.post":{"post":{"description":"Get a single Bluesky post by URL - text, author handle, like, reply, and repost counts as clean JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"bluesky_post","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l"},"schema":{"additionalProperties":false,"example":{"url":"https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l"},"properties":{"url":{"description":"Bluesky post URL, e.g. \"https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l\".","type":"string"}},"required":["url"],"title":"Bluesky post input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The post record, or null when nothing was found.","oneOf":[{"type":"null"},{"properties":{"authorHandle":{"description":"Handle of the account that authored the post. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"likes":{"description":"Number of likes on the post.","type":"integer"},"replies":{"description":"Number of replies to the post.","type":"integer"},"reposts":{"description":"Number of reposts of the post.","type":"integer"},"text":{"description":"The post's text content. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["text","authorHandle","likes","replies","reposts","createdUtc"],"type":"object"}]},"found":{"description":"True when the post was found; false when the lookup returned nothing.","type":"boolean"}},"required":["found","data"],"title":"Bluesky post output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Bluesky Post","tags":["bluesky"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/bluesky.profile":{"post":{"description":"Get a Bluesky user's public profile by handle - display name, bio, follower and post counts as clean JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"bluesky_profile","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"bsky.app"},"schema":{"additionalProperties":false,"example":{"handle":"bsky.app"},"properties":{"handle":{"description":"Bluesky handle, e.g. \"bsky.app\" or \"jay.bsky.team\".","type":"string"}},"required":["handle"],"title":"Bluesky profile input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"description":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"displayName":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"followers":{"type":"integer"},"following":{"type":"integer"},"handle":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"postsCount":{"type":"integer"}},"required":["handle","displayName","description","followers","following","postsCount"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Bluesky profile output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Bluesky Profile","tags":["bluesky"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/bluesky.user_posts":{"post":{"description":"List a Bluesky account's recent posts (text, author handle, like, reply, and repost counts) by handle as clean JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"bluesky_user_posts","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"bsky.app"},"schema":{"additionalProperties":false,"example":{"handle":"bsky.app"},"properties":{"handle":{"description":"Bluesky handle, e.g. \"bsky.app\" or \"jay.bsky.team\".","type":"string"}},"required":["handle"],"title":"Bluesky user posts input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Wrapper holding the posts array, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"posts":{"description":"The account's recent posts. Populated whenever the provider has data for the entity.","items":{"properties":{"authorHandle":{"description":"Handle of the account that authored the post. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"likes":{"description":"Number of likes on the post.","type":"integer"},"replies":{"description":"Number of replies to the post.","type":"integer"},"reposts":{"description":"Number of reposts of the post.","type":"integer"},"text":{"description":"The post's text content. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["text","authorHandle","likes","replies","reposts","createdUtc"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["posts"],"type":"object"}]},"found":{"description":"True when the account's posts were found; false when the lookup returned nothing.","type":"boolean"}},"required":["found","data"],"title":"Bluesky user posts output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Bluesky User Posts","tags":["bluesky"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/booking.search":{"post":{"description":"Search Booking.com stays by destination and dates with optional guest and room occupancy and get hotel results (name, price, review score, location) as normalized JSON.\n\n**Price:** billed per result - \\$2.00 per 1,000 requests base + \\$4.50 per 1,000 results, capped at \\$92.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"booking_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"adults":2,"checkIn":"2026-09-01","checkOut":"2026-09-03","limit":3,"query":"New York"},"schema":{"additionalProperties":false,"example":{"adults":2,"checkIn":"2026-09-01","checkOut":"2026-09-03","limit":3,"query":"New York"},"properties":{"adults":{"description":"Number of adult guests (e.g. 2).","minimum":1,"type":"integer"},"checkIn":{"description":"Check-in date in YYYY-MM-DD format (e.g. 2026-07-01). Defaults to tomorrow.","type":"string"},"checkOut":{"description":"Check-out date in YYYY-MM-DD format (e.g. 2026-07-05). Defaults to the day after check-in.","type":"string"},"children":{"description":"Number of child guests (e.g. 1).","minimum":0,"type":"integer"},"currency":{"default":"USD","description":"Currency code for prices (e.g. EUR).","type":"string"},"limit":{"description":"Maximum number of hotels to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.","maximum":20,"minimum":1,"type":"integer"},"query":{"description":"Destination city to search for stays in (e.g. Paris).","type":"string"},"rooms":{"description":"Number of rooms to book (e.g. 1).","minimum":1,"type":"integer"}},"required":["query"],"title":"Booking.com search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Hotel result records: name, price, review score, star rating, address, and location. Populated whenever the provider has data for the entity.","items":{"properties":{"address":{"type":"string"},"city":{"type":"string"},"country":{"description":"ISO country code.","type":"string"},"currency":{"type":"string"},"id":{"description":"Booking.com hotel identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"Primary hotel photo URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"latitude":{"type":"number"},"location":{"description":"Neighborhood or area label.","type":"string"},"longitude":{"type":"number"},"name":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"price":{"description":"Total stay price in the requested currency.","type":"number"},"pricePerNight":{"type":"number"},"rating":{"description":"Guest review score (0-10).","type":"number"},"reviewScore":{"description":"Guest review score (0-10).","type":"number"},"reviewsCount":{"type":"integer"},"stars":{"description":"Star rating class (1-5).","type":"integer"},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["name","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Booking.com search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Booking.com Search","tags":["booking"],"x-payment-info":{"price":{"currency":"USD","max":"0.092000","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/coinmarketcap.listings":{"post":{"description":"Get the current top cryptocurrencies from CoinMarketCap (rank, price, market cap, volume, and 24h change) as normalized JSON.\n\n**Price:** billed per result - \\$1.80 per 1,000 results, capped at \\$45.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"coinmarketcap_listings","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":5},"schema":{"additionalProperties":false,"example":{"limit":5},"properties":{"limit":{"description":"Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.","maximum":25,"minimum":1,"type":"integer"}},"title":"CoinMarketCap listings input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Cryptocurrency listing records: rank, name, symbol, price, market cap, trading volume, and 24h price change. Populated whenever the provider has data for the entity.","items":{"properties":{"ath":{"description":"All-time high price in USD.","type":"number"},"atl":{"description":"All-time low price in USD.","type":"number"},"circulatingSupply":{"description":"Circulating supply (coin count).","type":"number"},"high24h":{"description":"24h high price in USD.","type":"number"},"id":{"description":"CoinMarketCap identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"lastUpdated":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"low24h":{"description":"24h low price in USD.","type":"number"},"marketCap":{"description":"Market capitalization in USD.","type":"number"},"name":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"price":{"description":"Latest price in USD.","type":"number"},"slug":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"symbol":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"totalSupply":{"description":"Total supply (coin count).","type":"number"},"volume24h":{"description":"24h trading volume in USD.","type":"number"}},"required":["id","name","symbol"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"CoinMarketCap listings output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"CoinMarketCap Listings","tags":["coinmarketcap"],"x-payment-info":{"price":{"currency":"USD","max":"0.045000","min":"0.000000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/congress.trades":{"post":{"description":"Get US Congress members' financial disclosures and stock trades (member, ticker, transaction type, amount range, and dates), filterable by member, ticker, or date range.\n\n**Price:** billed per result - \\$1.00 per 1,000 requests base + \\$1.90 per 1,000 results, capped at \\$48.50 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"congress_trades","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":5},"schema":{"additionalProperties":false,"example":{"limit":5},"properties":{"endDate":{"description":"Latest transaction date to include, inclusive, in YYYY-MM-DD format (e.g. 2026-06-01).","type":"string"},"firstName":{"description":"Filter by the congressional member's first name, case-insensitive partial match (e.g. Nancy).","type":"string"},"lastName":{"description":"Filter by the congressional member's last name, case-insensitive partial match (e.g. Pelosi).","type":"string"},"limit":{"description":"Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.","maximum":25,"minimum":1,"type":"integer"},"startDate":{"description":"Earliest transaction date to include, inclusive, in YYYY-MM-DD format (e.g. 2026-01-01).","type":"string"},"ticker":{"description":"Filter to transactions involving this stock ticker symbol (e.g. NVDA).","type":"string"}},"required":[],"title":"Congress stock trades input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The result wrapper, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Disclosure records: member name and chamber, stock ticker, transaction type, amount range, and transaction/report dates. Populated whenever the provider has data for the entity.","items":{"properties":{"amountRange":{"description":"Disclosed dollar amount range for the transaction.","type":"string"},"assetName":{"description":"Full name of the traded asset. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"chamber":{"description":"Congressional chamber, e.g. House or Senate.","type":"string"},"firstName":{"description":"Member's first name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Stable disclosure record identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"lastName":{"description":"Member's last name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"owner":{"description":"Trade owner code, e.g. SP (spouse), JT (joint), DC (dependent child).","type":"string"},"reportedUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Date the transaction was reported/disclosed.","type":"number"},"stateDistrict":{"description":"Member's state and district, e.g. PA11.","type":"string"},"symbol":{"description":"Stock ticker symbol of the traded asset. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"tradedUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Date the transaction occurred.","type":"number"},"transactionType":{"description":"Transaction type code, e.g. P (purchase), S (sale).","type":"string"}},"required":["id","symbol"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when at least one disclosure record was returned.","type":"boolean"}},"required":["found","data"],"title":"Congress stock trades output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Congress Stock Trades","tags":["congress"],"x-payment-info":{"price":{"currency":"USD","max":"0.048500","min":"0.001000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/dexscreener.tokens":{"post":{"description":"List trending tokens on any blockchain from DEX Screener (price, liquidity, volume, transactions, and market cap), sorted how you want, as normalized JSON.\n\n**Price:** billed per result - \\$20.00 per 1,000 requests base + \\$1.50 per 1,000 results, capped at \\$57.50 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"dexscreener_tokens","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"chain":"solana","limit":5,"min24HVol":100000},"schema":{"additionalProperties":false,"example":{"chain":"solana","limit":5,"min24HVol":100000},"properties":{"chain":{"description":"Blockchain network to list tokens for, optionally scoped to a DEX as chain/dex (e.g. solana or ethereum/uniswap).","type":"string"},"limit":{"description":"Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.","maximum":25,"minimum":1,"type":"integer"},"max24HChg":{"description":"Only include tokens whose 24-hour price change is at most this many percent (e.g. -20 means -20%). Negative values allowed. Omit to skip this filter.","type":"integer"},"max24HTxns":{"description":"Only include tokens with at most this many 24-hour transactions (buys plus sells). Omit to skip this filter.","minimum":0,"type":"integer"},"max24HVol":{"description":"Only include tokens with at most this much 24-hour trading volume, in USD. Omit to skip this filter.","minimum":0,"type":"integer"},"maxAge":{"description":"Only include token pairs at most this old, in hours. Omit to skip this filter.","minimum":0,"type":"integer"},"maxFdv":{"description":"Only include tokens with at most this fully diluted valuation (FDV), in USD. Omit to skip this filter.","minimum":0,"type":"integer"},"maxLiq":{"description":"Only include tokens with at most this much pool liquidity, in USD. Omit to skip this filter.","minimum":0,"type":"integer"},"maxMarketCap":{"description":"Only include tokens with at most this market capitalization, in USD. Omit to skip this filter.","minimum":0,"type":"integer"},"min24HBuys":{"description":"Only include tokens with at least this many 24-hour buy transactions. Omit to skip this filter.","minimum":0,"type":"integer"},"min24HChg":{"description":"Only include tokens whose 24-hour price change is at least this many percent (e.g. 10 means +10%). Negative values allowed. Omit to skip this filter.","type":"integer"},"min24HSells":{"description":"Only include tokens with at least this many 24-hour sell transactions. Omit to skip this filter.","minimum":0,"type":"integer"},"min24HTxns":{"description":"Only include tokens with at least this many 24-hour transactions (buys plus sells). Omit to skip this filter.","minimum":0,"type":"integer"},"min24HVol":{"description":"Only include tokens with at least this much 24-hour trading volume, in USD. Omit to skip this filter.","minimum":0,"type":"integer"},"minAge":{"description":"Only include token pairs at least this old, in hours. Omit to skip this filter.","minimum":0,"type":"integer"},"minFdv":{"description":"Only include tokens with at least this fully diluted valuation (FDV), in USD. Omit to skip this filter.","minimum":0,"type":"integer"},"minLiq":{"description":"Only include tokens with at least this much pool liquidity, in USD. Omit to skip this filter.","minimum":0,"type":"integer"},"minMarketCap":{"description":"Only include tokens with at least this market capitalization, in USD. Omit to skip this filter.","minimum":0,"type":"integer"},"order":{"description":"Sort direction: desc or asc (e.g. desc).","type":"string"},"rankBy":{"description":"Field to sort tokens by (e.g. volume, txns, liquidity, marketCap, trendingScoreH24).","type":"string"},"timeframe":{"default":"24h","description":"Stats timeframe: 24h, 6h, 1h, or 5m (e.g. 24h).","type":"string"}},"required":["chain"],"title":"DEX Screener tokens input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The result wrapper, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Token listing records: token name and symbol, price, liquidity, volume, transaction/maker counts, price change, market cap, and the DEX Screener pair URL. Populated whenever the provider has data for the entity.","items":{"properties":{"ageHours":{"description":"Age of the token pair in hours.","type":"integer"},"image":{"description":"Token logo image URL.","type":"string"},"liquidityUsd":{"description":"Total pool liquidity in USD.","type":"number"},"makerCount":{"description":"Number of distinct makers over the selected timeframe.","type":"integer"},"marketCapUsd":{"description":"Token market capitalization in USD.","type":"number"},"name":{"description":"Token full name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"poolAddress":{"description":"On-chain address of the liquidity pool.","type":"string"},"price":{"description":"Current token price in USD. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"priceChange1h":{"description":"Fractional price change over the past hour.","type":"number"},"priceChange24h":{"description":"Fractional price change over the past 24 hours.","type":"number"},"symbol":{"description":"Token ticker symbol. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"transactionCount":{"description":"Number of transactions over the selected timeframe.","type":"integer"},"url":{"description":"DEX Screener URL for the trading pair. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"volumeUsd":{"description":"Trading volume in USD over the selected timeframe.","type":"number"}},"required":["symbol","price"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when at least one token record was returned.","type":"boolean"}},"required":["found","data"],"title":"DEX Screener tokens output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"DEX Screener Tokens","tags":["dexscreener"],"x-payment-info":{"price":{"currency":"USD","max":"0.057500","min":"0.020000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/douyin.profile":{"post":{"description":"Look up a public Douyin profile by sec_user_id and return normalized profile statistics.\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"douyin_profile","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"secUserId":"MS4wLjABAAAAW9FWcqS7RdQAWPd2AA5fL_ilmqsIFUCQ_Iym6Yh9_cUa6ZRqVLjVQSUjlHrfXY1Y"},"schema":{"additionalProperties":false,"example":{"secUserId":"MS4wLjABAAAAW9FWcqS7RdQAWPd2AA5fL_ilmqsIFUCQ_Iym6Yh9_cUa6ZRqVLjVQSUjlHrfXY1Y"},"properties":{"secUserId":{"description":"Douyin sec_user_id for the public account.","minLength":1,"type":"string"}},"required":["secUserId"],"title":"Douyin profile input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Normalized profile, or null when not found.","oneOf":[{"type":"null"},{"properties":{"bio":{"description":"Profile biography.","type":"string"},"followers":{"description":"Follower count.","type":"integer"},"following":{"description":"Following count.","type":"integer"},"image":{"description":"Profile image URL. Populated whenever the provider has data for the entity.","format":"uri","type":"string","x-anyapi-must-populate":true},"likes":{"description":"Total likes received.","type":"integer"},"nickname":{"description":"Display name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"posts":{"description":"Published post count.","type":"integer"},"secUserId":{"description":"Douyin sec_user_id. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"shortId":{"description":"Legacy numeric short ID.","type":"string"},"uniqueId":{"description":"Public Douyin handle when configured. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"userId":{"description":"Douyin user identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["userId","secUserId"],"type":"object"}]},"found":{"description":"True when the profile was found.","type":"boolean"}},"required":["found","data"],"title":"Douyin profile output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Douyin Profile","tags":["douyin"],"x-payment-info":{"price":{"amount":"0.001000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/douyin.search_videos":{"post":{"description":"Search public Douyin videos by keyword with sorting, time, duration, and content filters.\n\n**Price:** \\$10.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"douyin_search_videos","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"duration":"0","publishedWithin":"0","query":"机器人","sort":"0"},"schema":{"additionalProperties":false,"example":{"duration":"0","publishedWithin":"0","query":"机器人","sort":"0"},"properties":{"backtrace":{"description":"Backtrace token returned by the previous page.","type":"string"},"cursor":{"description":"Pagination cursor from the previous response; omit for the first page.","minimum":0,"type":"integer"},"duration":{"default":"0","description":"Duration filter in minutes: any, under 1, 1 to 5, or over 5.","enum":["0","0-1","1-5","5-10000"],"type":"string"},"publishedWithin":{"default":"0","description":"Publication window in days: 0 any time, 1 day, 7 days, or 180 days.","enum":["0","1","7","180"],"type":"string"},"query":{"description":"Keyword to search for.","minLength":1,"type":"string"},"searchId":{"description":"Search ID returned by the previous page.","type":"string"},"sort":{"default":"0","description":"Sort order: 0 comprehensive, 1 most liked, or 2 newest.","enum":["0","1","2"],"type":"string"}},"required":["query"],"title":"Douyin video search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Videos and pagination, or null when none were found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"backtrace":{"description":"Backtrace token required for the next page.","type":"string"},"hasMore":{"description":"Whether another page is available.","type":"boolean"},"nextCursor":{"description":"Cursor for the next page.","type":"string"},"searchId":{"description":"Search ID required for the next page.","type":"string"},"videos":{"description":"Normalized matching videos. Populated whenever the provider has data for the entity.","items":{"properties":{"authorNickname":{"description":"Author display name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorUserId":{"description":"Author user identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"caption":{"description":"Video caption. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"comments":{"description":"Comment count.","type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"id":{"description":"Video identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"Cover image URL.","format":"uri","type":"string"},"likes":{"description":"Like count.","type":"integer"},"saves":{"description":"Save count.","type":"integer"},"shares":{"description":"Share count.","type":"integer"},"url":{"description":"Canonical video URL. Populated whenever the provider has data for the entity.","format":"uri","type":"string","x-anyapi-must-populate":true},"views":{"description":"Play count.","type":"integer"}},"required":["id"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["videos","nextCursor","searchId","backtrace","hasMore"],"type":"object"}]},"found":{"description":"True when matching videos were found.","type":"boolean"}},"required":["found","data"],"title":"Douyin video search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Douyin Video Search","tags":["douyin"],"x-payment-info":{"price":{"amount":"0.010000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/douyin.user_posts":{"post":{"description":"List public posts from a Douyin user with normalized engagement data and pagination.\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"douyin_user_posts","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":20,"secUserId":"MS4wLjABAAAANXSltcLCzDGmdNFI2Q_QixVTr67NiYzjKOIP5s03CAE","sort":0},"schema":{"additionalProperties":false,"example":{"limit":20,"secUserId":"MS4wLjABAAAANXSltcLCzDGmdNFI2Q_QixVTr67NiYzjKOIP5s03CAE","sort":0},"properties":{"cursor":{"description":"Pagination cursor from the previous response; omit for the first page.","type":"integer"},"limit":{"default":20,"description":"Requested page size. Values up to 20 are recommended.","type":"integer"},"secUserId":{"description":"Douyin sec_user_id for the public account.","minLength":1,"type":"string"},"sort":{"default":0,"description":"Post order: 0 for newest or 1 for most popular.","type":"integer"}},"required":["secUserId"],"title":"Douyin user posts input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Posts and pagination, or null when none were found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"hasMore":{"description":"Whether another page is available.","type":"boolean"},"nextCursor":{"description":"Cursor for the next page; empty when unavailable.","type":"string"},"posts":{"description":"Normalized Douyin posts. Populated whenever the provider has data for the entity.","items":{"properties":{"authorNickname":{"description":"Author display name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorSecUserId":{"description":"Author sec_user_id. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorUserId":{"description":"Author user identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"caption":{"description":"Post caption. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"comments":{"description":"Comment count.","type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"id":{"description":"Post identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"Cover image URL.","format":"uri","type":"string"},"likes":{"description":"Like count.","type":"integer"},"saves":{"description":"Save count.","type":"integer"},"shares":{"description":"Share count.","type":"integer"},"url":{"description":"Canonical post URL. Populated whenever the provider has data for the entity.","format":"uri","type":"string","x-anyapi-must-populate":true},"views":{"description":"Play count.","type":"integer"}},"required":["id"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["posts","nextCursor","hasMore"],"type":"object"}]},"found":{"description":"True when posts were found.","type":"boolean"}},"required":["found","data"],"title":"Douyin user posts output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Douyin User Posts","tags":["douyin"],"x-payment-info":{"price":{"amount":"0.001000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/douyin.video":{"post":{"description":"Fetch a public Douyin video by share URL with normalized author and engagement data.\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"douyin_video","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.douyin.com/video/6894784055775071503"},"schema":{"additionalProperties":false,"example":{"url":"https://www.douyin.com/video/6894784055775071503"},"properties":{"url":{"description":"Public Douyin video share URL.","format":"uri","type":"string"}},"required":["url"],"title":"Douyin video input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Normalized video, or null when not found.","oneOf":[{"type":"null"},{"properties":{"authorNickname":{"description":"Author display name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorSecUserId":{"description":"Author sec_user_id. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorUserId":{"description":"Author user identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"caption":{"description":"Video caption. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"comments":{"description":"Comment count.","type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"durationMs":{"description":"Video duration in milliseconds.","type":"integer"},"id":{"description":"Video identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"Video cover image URL.","format":"uri","type":"string"},"likes":{"description":"Like count.","type":"integer"},"saves":{"description":"Save count.","type":"integer"},"shares":{"description":"Share count.","type":"integer"},"url":{"description":"Canonical Douyin video URL. Populated whenever the provider has data for the entity.","format":"uri","type":"string","x-anyapi-must-populate":true},"views":{"description":"Play count.","type":"integer"}},"required":["id"],"type":"object"}]},"found":{"description":"True when the video was found.","type":"boolean"}},"required":["found","data"],"title":"Douyin video output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Douyin Video","tags":["douyin"],"x-payment-info":{"price":{"amount":"0.001000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/douyin.video_comments":{"post":{"description":"List public comments on a Douyin video with author and engagement data.\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"douyin_video_comments","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"videoId":"7448118827402972455"},"schema":{"additionalProperties":false,"example":{"videoId":"7448118827402972455"},"properties":{"cursor":{"description":"Pagination cursor from the previous response; omit for the first page.","minimum":0,"type":"integer"},"videoId":{"description":"Douyin aweme_id for the video.","minLength":1,"type":"string"}},"required":["videoId"],"title":"Douyin video comments input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Comments and pagination, or null when none were found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"comments":{"description":"Normalized video comments. Populated whenever the provider has data for the entity.","items":{"properties":{"authorImage":{"description":"Author profile image URL.","format":"uri","type":"string"},"authorNickname":{"description":"Author display name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorSecUserId":{"description":"Author sec_user_id. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorUniqueId":{"description":"Author public handle.","type":"string"},"authorUserId":{"description":"Author user identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"id":{"description":"Comment identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"ipLabel":{"description":"Approximate location label shown by Douyin.","type":"string"},"likes":{"description":"Comment like count.","type":"integer"},"replyCount":{"description":"Direct reply count.","type":"integer"},"text":{"description":"Comment text. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"videoId":{"description":"Commented video identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","videoId"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"hasMore":{"description":"Whether another page is available.","type":"boolean"},"nextCursor":{"description":"Cursor for the next page.","type":"string"},"total":{"description":"Total comment count reported by Douyin.","type":"integer"}},"required":["comments","nextCursor","hasMore","total"],"type":"object"}]},"found":{"description":"True when comments were found.","type":"boolean"}},"required":["found","data"],"title":"Douyin video comments output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Douyin Video Comments","tags":["douyin"],"x-payment-info":{"price":{"amount":"0.001000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/ebay.search":{"post":{"description":"Search eBay active listings by keyword with optional price-range, item-condition, listing-type, and sort filters and get title, price, condition, shipping, and seller in one normalized response.\n\n**Price:** billed per result - \\$1.00 per 1,000 requests base + \\$2.34 per 1,000 results, capped at \\$59.50 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"ebay_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"query":"nintendo switch","sort":"price_low"},"schema":{"additionalProperties":false,"example":{"limit":3,"query":"nintendo switch","sort":"price_low"},"properties":{"condition":{"description":"Filter by one or more item conditions; omit for all conditions (e.g. [\"new\", \"open_box\"]).","items":{"enum":["new","open_box","refurbished","used","for_parts"],"type":"string"},"type":"array"},"limit":{"description":"Maximum number of results to return (1 to 25, default 25). You are billed per result returned, so a lower limit costs less.","maximum":25,"minimum":1,"type":"integer"},"listingType":{"description":"Restrict to a listing format; omit or use all for both (e.g. buy_it_now for fixed-price only).","enum":["all","auction","buy_it_now"],"type":"string"},"maxPrice":{"description":"Optional maximum item price in USD.","minimum":0,"type":"integer"},"minPrice":{"description":"Optional minimum item price in USD.","minimum":0,"type":"integer"},"query":{"description":"Search keywords, e.g. \"nintendo switch\" or \"vintage levis 501\".","type":"string"},"sort":{"description":"Result sort order; omit for eBay's Best Match (e.g. price_low sorts by lowest price plus shipping first).","enum":["best_match","ending_soonest","newly_listed","price_low","price_high"],"type":"string"}},"required":["query"],"title":"eBay search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Listing records: title, price, condition, shipping cost, seller info, image, and item URL. Populated whenever the provider has data for the entity.","items":{"properties":{"condition":{"type":"string"},"image":{"description":"Primary listing image URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"itemId":{"description":"eBay item identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"listingType":{"description":"Auction, FixedPrice, etc.","type":"string"},"price":{"description":"Listing price.","type":"number"},"sellerFeedbackPercent":{"description":"Seller positive-feedback percentage.","type":"number"},"sellerName":{"type":"string"},"shippingCost":{"description":"Shipping cost or free-delivery label.","type":"string"},"title":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["itemId","title","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"eBay search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"eBay Search","tags":["ebay"],"x-payment-info":{"price":{"currency":"USD","max":"0.059500","min":"0.001000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/ebay.sold_listings":{"post":{"description":"Retrieve recently sold eBay listings for any keyword with optional price-range and sort filters (sold price, sale date, condition, item details); ideal for pricing research.\n\n**Price:** billed per result - \\$0.05 per 1,000 requests base + \\$4.00 per 1,000 results, capped at \\$100.05 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"ebay_sold_listings","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"query":"nintendo switch","sort":"price_high"},"schema":{"additionalProperties":false,"example":{"limit":3,"query":"nintendo switch","sort":"price_high"},"properties":{"condition":{"default":"any","description":"Item condition filter (e.g. used).","enum":["any","new","used"],"type":"string"},"daysBack":{"default":30,"description":"How many days back to include sold listings, 1-90 (e.g. 30).","type":"integer"},"limit":{"description":"Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.","maximum":25,"minimum":1,"type":"integer"},"maxPrice":{"description":"Optional maximum sold price in the site currency (e.g. 500).","minimum":0,"type":"number"},"minPrice":{"description":"Optional minimum sold price in the site currency (e.g. 200).","minimum":0,"type":"number"},"query":{"description":"Search keyword for sold items (e.g. iphone 13 pro).","type":"string"},"site":{"default":"ebay.com","description":"eBay country site to search (e.g. ebay.co.uk).","enum":["ebay.com","ebay.co.uk","ebay.de","ebay.fr","ebay.it","ebay.es","ebay.ca","ebay.com.au"],"type":"string"},"sort":{"description":"Result sort order; omit for eBay's default ended-recently (e.g. price_high sorts by highest total price first).","enum":["ended_recently","newly_listed","price_low","price_high","distance_nearest"],"type":"string"}},"required":["query"],"title":"eBay sold listings input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Sold listing records: title, sold price, sale date, condition, shipping, and item URL. Populated whenever the provider has data for the entity.","items":{"properties":{"condition":{"type":"string"},"endedAt":{"description":"Sale date (ISO 8601).","type":"string"},"image":{"description":"Primary listing image URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"itemId":{"description":"eBay item identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"listingType":{"type":"string"},"sellerUsername":{"type":"string"},"soldCurrency":{"type":"string"},"soldPrice":{"description":"Final sold price.","type":"number"},"title":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"totalPrice":{"description":"Sold price plus shipping.","type":"number"},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["itemId","title","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"eBay sold listings output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"eBay Sold Listings","tags":["ebay"],"x-payment-info":{"price":{"currency":"USD","max":"0.100050","min":"0.000050","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/email.find":{"post":{"description":"Find a person's work email address from their name and company domain.\n\n**Price:** billed per result - \\$5.00 per 1,000 requests base + \\$8.00 per 1,000 results, capped at \\$13.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"email_find","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"person":{"domain":"stripe.com","firstName":"Patrick","surname":"Collison"}},"schema":{"additionalProperties":false,"example":{"person":{"domain":"stripe.com","firstName":"Patrick","surname":"Collison"}},"properties":{"person":{"description":"The person to find an email for, e.g. {\"firstName\": \"Jane\", \"surname\": \"Doe\", \"domain\": \"acme.com\"} (domain also accepts a company name).","properties":{"domain":{"description":"Company domain (e.g. acme.com) or company name (e.g. Acme Inc), resolved automatically.","type":"string"},"firstName":{"description":"The person's first name (e.g. Jane).","type":"string"},"surname":{"description":"The person's last name (e.g. Doe).","type":"string"}},"required":["firstName","surname","domain"],"type":"object"}},"title":"Email Finder input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Email lookup records: the discovered email address, verification status, and the matched person and company details. Populated whenever the provider has data for the entity.","items":{"properties":{"domain":{"type":"string"},"email":{"description":"Discovered email address, or empty when none was found. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"firstName":{"type":"string"},"isDeliverable":{"type":"boolean"},"lastName":{"type":"string"},"status":{"description":"Lookup status (e.g. found, not_found). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["email","status"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Email Finder output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Email Finder","tags":["email"],"x-payment-info":{"price":{"currency":"USD","max":"0.013000","min":"0.005000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/email.verify":{"post":{"description":"Verify an email address for deliverability: a status verdict (valid, risky, or invalid) with domain, mailbox, catch-all, disposable, and role signals plus a confidence score. Malformed addresses are rejected by the input schema with no charge; every syntactically valid address returns a billed verdict, including undeliverable ones.\n\n**Price:** billed per result - \\$0.80 per 1,000 results, capped at \\$0.80 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"email_verify","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"email":"patrick@stripe.com"},"schema":{"additionalProperties":false,"example":{"email":"patrick@stripe.com"},"properties":{"email":{"description":"The email address to verify (e.g. jane.doe@acme.com). Exactly one @, a dotted domain, no whitespace or angle brackets. Addresses on reserved, never-deliverable TLDs (.invalid, .test, .example, .localhost, .local, .internal, .blink) and HTML/JSON escape artifacts (a u003e prefix) are rejected locally with no charge.","maxLength":254,"minLength":6,"not":{"pattern":"^[uU]00[0-9a-fA-F]{2}|\\.\\.|\\.([Bb][Ll][Ii][Nn][Kk]|[Ii][Nn][Vv][Aa][Ll][Ii][Dd]|[Ll][Oo][Cc][Aa][Ll]([Hh][Oo][Ss][Tt])?|[Tt][Ee][Ss][Tt]|[Ee][Xx][Aa][Mm][Pp][Ll][Ee]|[Ii][Nn][Tt][Ee][Rr][Nn][Aa][Ll])$"},"pattern":"^[^\\s\u003c\u003e()\\[\\],;:\"@\\\\]+@[^\\s\u003c\u003e()\\[\\],;:\"@\\\\]+\\.[^\\s\u003c\u003e()\\[\\],;:\"@.\\\\]{2,63}$","type":"string"}},"required":["email"],"title":"Email Verifier input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Verification records: the email address with its deliverability verdict and the domain, mailbox, and reputation signals behind it. A record is returned for every syntactically valid address, including ones the verdict marks undeliverable. Populated whenever the provider has data for the entity.","items":{"properties":{"catchAll":{"description":"Domain accepts all addresses.","type":"boolean"},"disposable":{"type":"boolean"},"domain":{"type":"string"},"email":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"free":{"description":"Free email provider.","type":"boolean"},"reason":{"type":"string"},"role":{"description":"Role-based address (e.g. info@).","type":"boolean"},"score":{"description":"Confidence score (0-100).","type":"integer"},"status":{"description":"Deliverability verdict (e.g. valid, risky, invalid). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["email","status"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Email Verifier output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Email Verifier","tags":["email"],"x-payment-info":{"price":{"currency":"USD","max":"0.000800","min":"0.000000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/facebook.ad_details":{"post":{"description":"Look up a single Meta Ad Library ad by ID or URL and get the advertiser, creative text, call-to-action, platforms, and run dates as clean JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"facebook_ad_details","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"id":"1869276447125570"},"schema":{"additionalProperties":false,"example":{"id":"1869276447125570"},"properties":{"id":{"description":"Meta Ad Library ad ID (e.g. \"702369045530963\"). Provide either id or url.","type":"string"},"url":{"description":"Meta Ad Library ad URL (e.g. \"https://www.facebook.com/ads/library?id=1185617869915074\"). Provide either id or url.","type":"string"}},"title":"Facebook ad details input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"active":{"description":"Whether the ad is currently running.","type":["boolean","null"]},"adArchiveId":{"description":"Ad Library archive ID (stable identity). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"ctaText":{"description":"Call-to-action label. Populated whenever the provider has data for the entity.","type":["string","null"],"x-anyapi-must-populate":true},"currency":{"description":"Spend currency, may be empty.","type":["string","null"]},"displayFormat":{"description":"Ad creative format. Populated whenever the provider has data for the entity.","type":["string","null"],"x-anyapi-must-populate":true},"endDate":{"description":"Run end, epoch seconds.","type":["integer","null"]},"linkUrl":{"description":"Creative destination URL. Populated whenever the provider has data for the entity.","type":["string","null"],"x-anyapi-must-populate":true},"pageId":{"description":"Advertiser page ID (stable identity). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"pageName":{"description":"Advertiser page name. Populated whenever the provider has data for the entity.","type":["string","null"],"x-anyapi-must-populate":true},"platforms":{"description":"Publisher platforms the ad runs on. Populated whenever the provider has data for the entity.","items":{"type":"string"},"type":["array","null"],"x-anyapi-must-populate":true},"startDate":{"description":"Run start, epoch seconds. Populated whenever the provider has data for the entity.","type":["integer","null"],"x-anyapi-must-populate":true},"text":{"description":"Ad body text. Populated whenever the provider has data for the entity.","type":["string","null"],"x-anyapi-must-populate":true},"title":{"description":"Creative title. Populated whenever the provider has data for the entity.","type":["string","null"],"x-anyapi-must-populate":true}},"required":["adArchiveId","pageId"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Facebook ad details output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Facebook Ad Details","tags":["facebook"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/facebook.ad_transcript":{"post":{"description":"Get the spoken-word transcript of a Meta Ad Library video ad by ad ID or URL.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"facebook_ad_transcript","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"id":"931919822778200"},"schema":{"additionalProperties":false,"example":{"id":"931919822778200"},"properties":{"id":{"description":"Meta Ad Library ad ID (e.g. \"1020359190509080\"). Provide either id or url.","type":"string"},"url":{"description":"Meta Ad Library ad URL (e.g. \"https://www.facebook.com/ads/library?id=1020359190509080\"). Provide either id or url.","type":"string"}},"title":"Facebook ad transcript input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"adId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"transcript":{"description":"Transcribed ad audio text.","type":"string"},"transcriptAvailable":{"type":"boolean"},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["adId","url","transcript","transcriptAvailable"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Facebook ad transcript output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Facebook Ad Transcript","tags":["facebook"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/facebook.ads_search":{"post":{"description":"Search the Meta Ad Library by keyword and get matching ads (advertiser, creative text, CTA, platforms, and run dates) with cursor pagination.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"facebook_ads_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"country":"US","query":"nike","searchType":"keyword_exact_phrase"},"schema":{"additionalProperties":false,"example":{"country":"US","query":"nike","searchType":"keyword_exact_phrase"},"properties":{"adType":{"description":"Restrict to all ads (default) or only political and issue ads.","enum":["all","political_and_issue_ads"],"type":"string"},"country":{"description":"Two-letter country code to scope results. Omit for all countries.","type":"string"},"cursor":{"description":"Opaque pagination cursor from a previous response's nextCursor.","type":"string"},"endDate":{"description":"Filter to ads with impressions on or before this date, in YYYY-MM-DD format.","type":"string"},"mediaType":{"description":"Creative media type filter.","enum":["ALL","IMAGE","VIDEO","MEME","IMAGE_AND_MEME","NONE"],"type":"string"},"query":{"description":"Keyword to search the Meta Ad Library for (e.g. \"protein powder\").","type":"string"},"searchType":{"description":"Match mode for the query: loose keyword match (keyword_unordered, the default) or exact phrase (keyword_exact_phrase).","enum":["keyword_unordered","keyword_exact_phrase"],"type":"string"},"sortBy":{"description":"Sort order: impressions (highest first, the default) or recent (most recent).","enum":["impressions","recent"],"type":"string"},"startDate":{"description":"Filter to ads with impressions on or after this date, in YYYY-MM-DD format.","type":"string"},"status":{"default":"ACTIVE","description":"Ad status filter.","enum":["ALL","ACTIVE","INACTIVE"],"type":"string"}},"required":["query"],"title":"Facebook ad search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"ads":{"items":{"properties":{"active":{"type":"boolean"},"adCount":{"description":"Number of ads in this campaign (collation count).","type":"integer"},"ctaText":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"ctaType":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"displayFormat":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"endDate":{"description":"Epoch seconds.","type":"integer"},"id":{"description":"Ad Library archive ID. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"linkUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"pageId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"pageName":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"platforms":{"description":"Populated whenever the provider has data for the entity.","items":{"type":"string"},"type":"array","x-anyapi-must-populate":true},"startDate":{"description":"Epoch seconds. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"text":{"description":"Ad body text. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","pageId","pageName","active","startDate","endDate","text","title","ctaText","ctaType","linkUrl","displayFormat","platforms","adCount"],"type":"object"},"type":"array"},"nextCursor":{"type":"string"},"totalResults":{"type":"integer"}},"required":["totalResults","nextCursor","ads"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Facebook ad search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Facebook Ad Search","tags":["facebook"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/facebook.comment_replies":{"post":{"description":"List the replies to a Facebook post comment (text, author, reactions, and timestamps) as normalized JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"facebook_comment_replies","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"expansionToken":"MjoxNzgzMjI4OTY4OgF_o5zrjDnpemv4bwPtpsShXutqvKIw2bKs2YuJksL1Ak8n8YG-_KPSQGkIks5oW6wdRfhb_cRv9q5OX0NHjFJwEupYNZi9pcMV-FYLWLp47u-eusMkZFOMwbkISsTln7gtSvQrOzlffyavOTIL85PECYzGfunU2IAEkd13CIikxu06Mw10UJ1ShcFAmz8175R1uJfYy_iOixWZukqfrWhUfVOXApXznxx7qXvUxPwct76qe6p7-nVWQrPC_SZc2xh9Z8ggL3WMjgTzSq4oWFSsyZuuVsyVVjSgdjRQiDqtJSeEUlSjTr6vOnKsvKV-GpnBRaeA0BCaNRhqpB4xDZoduBuO5ZYrFvWLJdJLryDhCPI2Ss-Z33cEM2Vz7pLf1wJzE7TuizXPwICSn1DA_Prca-BItTbOUjAjfiySap1LXYkGuuDC2ziUdiEsmE5XhevMP8XtF_2WQlMNcGbXMEQyAWDUawtPAxXgMeRrCO9YGSweFQ4OZumoIlSGa3Vfjy-euUOHT1IAsNbV2A8rAq4HJNU3jCXQTn0vfW9xvbVQhL-53Mhw2YPjhlvUj6QpnGA25N8","feedbackId":"ZmVlZGJhY2s6MTM5MzQ2MTExNTQ4MTkyN18yMDgyNjUzMjQ1ODA5Mzg2"},"schema":{"additionalProperties":false,"example":{"expansionToken":"MjoxNzgzMjI4OTY4OgF_o5zrjDnpemv4bwPtpsShXutqvKIw2bKs2YuJksL1Ak8n8YG-_KPSQGkIks5oW6wdRfhb_cRv9q5OX0NHjFJwEupYNZi9pcMV-FYLWLp47u-eusMkZFOMwbkISsTln7gtSvQrOzlffyavOTIL85PECYzGfunU2IAEkd13CIikxu06Mw10UJ1ShcFAmz8175R1uJfYy_iOixWZukqfrWhUfVOXApXznxx7qXvUxPwct76qe6p7-nVWQrPC_SZc2xh9Z8ggL3WMjgTzSq4oWFSsyZuuVsyVVjSgdjRQiDqtJSeEUlSjTr6vOnKsvKV-GpnBRaeA0BCaNRhqpB4xDZoduBuO5ZYrFvWLJdJLryDhCPI2Ss-Z33cEM2Vz7pLf1wJzE7TuizXPwICSn1DA_Prca-BItTbOUjAjfiySap1LXYkGuuDC2ziUdiEsmE5XhevMP8XtF_2WQlMNcGbXMEQyAWDUawtPAxXgMeRrCO9YGSweFQ4OZumoIlSGa3Vfjy-euUOHT1IAsNbV2A8rAq4HJNU3jCXQTn0vfW9xvbVQhL-53Mhw2YPjhlvUj6QpnGA25N8","feedbackId":"ZmVlZGJhY2s6MTM5MzQ2MTExNTQ4MTkyN18yMDgyNjUzMjQ1ODA5Mzg2"},"properties":{"cursor":{"description":"Pagination cursor from a previous response.","type":"string"},"expansionToken":{"description":"The expansion_token of the comment, from the post comments endpoint.","type":"string"},"feedbackId":{"description":"The feedback_id of the comment (not the comment id).","type":"string"}},"required":["feedbackId","expansionToken"],"title":"Facebook Comment Replies input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Wrapper holding the replies array plus pagination, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"hasNextPage":{"description":"True when more replies are available beyond this page.","type":"boolean"},"nextCursor":{"description":"Cursor for the next page of replies; empty when there are no more.","type":"string"},"replies":{"description":"Replies to the comment. Populated whenever the provider has data for the entity.","items":{"properties":{"authorId":{"description":"Identifier of the reply author. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorName":{"description":"Display name of the reply author. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorProfilePicture":{"description":"URL of the author's profile picture.","type":"string"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"expansionToken":{"description":"Token used to expand nested replies, when present.","type":"string"},"feedbackId":{"description":"Facebook feedback identifier for the reply. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Reply identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"reactionCount":{"description":"Number of reactions on the reply.","type":"integer"},"replyCount":{"description":"Number of replies nested under this reply.","type":"integer"},"text":{"description":"Reply text content. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","text","createdUtc","replyCount","reactionCount","authorName","authorId","authorProfilePicture","feedbackId"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["nextCursor","hasNextPage","replies"],"type":"object"}]},"found":{"description":"True when replies were found; false when the lookup returned nothing.","type":"boolean"}},"required":["found","data"],"title":"Facebook Comment Replies output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Facebook Comment Replies","tags":["facebook"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/facebook.company_ads":{"post":{"description":"List the Meta Ad Library ads a company is running by page ID or company name (creative text, format, platforms, and run dates) with cursor pagination.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"facebook_company_ads","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"companyName":"nike","sortBy":"recent"},"schema":{"additionalProperties":false,"anyOf":[{"required":["pageId"]},{"required":["companyName"]}],"example":{"companyName":"nike","sortBy":"recent"},"properties":{"companyName":{"description":"Company name to search (e.g. \"nike\"). Exact-match and case-sensitive against the Meta Ad Library index; an advertiser with no indexed page returns found:false.","minLength":1,"type":"string"},"country":{"description":"Two-letter country code to scope results. Defaults to all countries.","type":"string"},"cursor":{"description":"Opaque pagination cursor from a previous response's nextCursor.","type":"string"},"endDate":{"description":"Filter to ads with impressions on or before this date, in YYYY-MM-DD format.","type":"string"},"language":{"description":"Two-letter language code to filter ads (e.g. \"EN\", \"ES\", \"FR\").","type":"string"},"mediaType":{"description":"Creative media type filter.","enum":["ALL","IMAGE","VIDEO","MEME","IMAGE_AND_MEME","NONE"],"type":"string"},"pageId":{"description":"Company's Ad Library page ID. Provide either pageId or companyName.","minLength":1,"type":"string"},"sortBy":{"description":"Sort order: impressions (highest first, the default) or recent (most recent).","enum":["impressions","recent"],"type":"string"},"startDate":{"description":"Filter to ads with impressions on or after this date, in YYYY-MM-DD format.","type":"string"},"status":{"description":"Ad status filter. Defaults to ACTIVE.","enum":["ALL","ACTIVE","INACTIVE"],"type":"string"}},"title":"Facebook company ads input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"ads":{"items":{"properties":{"active":{"type":"boolean"},"adCount":{"description":"Number of ads in this campaign (collation count).","type":"integer"},"currency":{"type":"string"},"displayFormat":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"endDate":{"description":"Epoch seconds.","type":"integer"},"id":{"description":"Ad Library archive ID. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"pageId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"pageName":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"platforms":{"description":"Populated whenever the provider has data for the entity.","items":{"type":"string"},"type":"array","x-anyapi-must-populate":true},"startDate":{"description":"Epoch seconds. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"text":{"description":"Ad body text. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","pageId","pageName","active","startDate","endDate","currency","text","displayFormat","platforms","adCount"],"type":"object"},"type":"array"},"nextCursor":{"type":"string"}},"required":["nextCursor","ads"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Facebook company ads output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Facebook Company Ads","tags":["facebook"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/facebook.event_details":{"post":{"description":"Fetch full details for a single Facebook event by ID or URL (name, schedule, venue, hosts, and attendance) as normalized JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"facebook_event_details","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"id":"4045709448982422"},"schema":{"additionalProperties":false,"example":{"id":"4045709448982422"},"properties":{"id":{"description":"The event's numeric identifier.","type":"string"},"url":{"description":"The event's Facebook URL.","type":"string"}},"title":"Facebook Event Details input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"city":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"coverPhotoUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"dayTimeSentence":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"description":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"endTime":{"type":"string"},"goingCount":{"type":"integer"},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"interestedCount":{"type":"integer"},"isCanceled":{"type":"boolean"},"isOnline":{"type":"boolean"},"locationName":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"name":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"startTime":{"type":"string"},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","url","name","description","dayTimeSentence","startTime","endTime","locationName","city","interestedCount","goingCount","coverPhotoUrl","isOnline","isCanceled"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Facebook Event Details output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Facebook Event Details","tags":["facebook"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/facebook.events":{"post":{"description":"List public Facebook events for a city or place by its events-page URL (event name, date, venue, and attendance) as normalized JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"facebook_events","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.facebook.com/events/explore/saint-petersburg-florida/111326725552547"},"schema":{"additionalProperties":false,"example":{"url":"https://www.facebook.com/events/explore/saint-petersburg-florida/111326725552547"},"properties":{"cursor":{"description":"Pagination cursor from a previous response to fetch the next page.","type":"string"},"time":{"description":"Timeframe filter for the returned events. Defaults to all time.","enum":["today","this_week","next_week"],"type":"string"},"url":{"description":"URL of a city's or place's Facebook Events page (e.g. https://www.facebook.com/events/explore/saint-petersburg-florida/111326725552547).","type":"string"}},"required":["url"],"title":"Facebook Events input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"events":{"items":{"properties":{"dayTimeSentence":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"goingCount":{"type":"integer"},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"interestedCount":{"type":"integer"},"isOnline":{"type":"boolean"},"name":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"placeName":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"startTimestamp":{"description":"Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","name","url","dayTimeSentence","startTimestamp","isOnline","placeName","interestedCount","goingCount"],"type":"object"},"type":"array"},"nextCursor":{"type":"string"}},"required":["nextCursor","events"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Facebook Events output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Facebook Events","tags":["facebook"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/facebook.events_search":{"post":{"description":"Search public Facebook events by keyword and get structured event records (name, schedule, venue, pricing, and attendance) as normalized JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"facebook_events_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"query":"music festival"},"schema":{"additionalProperties":false,"example":{"query":"music festival"},"properties":{"cursor":{"description":"Pagination cursor from a previous response.","type":"string"},"query":{"description":"The query to search events for.","type":"string"}},"required":["query"],"title":"Facebook Events Search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"events":{"items":{"properties":{"coverImage":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"dayTimeSentence":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"goingCount":{"type":"integer"},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"interestedCount":{"type":"integer"},"isOnline":{"type":"boolean"},"isPast":{"type":"boolean"},"name":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"placeName":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"priceRangeText":{"type":"string"},"startTimestamp":{"description":"Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","name","url","dayTimeSentence","startTimestamp","placeName","priceRangeText","coverImage","interestedCount","goingCount","isOnline","isPast"],"type":"object"},"type":"array"},"nextCursor":{"type":"string"}},"required":["nextCursor","events"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Facebook Events Search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Facebook Events Search","tags":["facebook"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/facebook.followers":{"post":{"description":"List the public followers (or accounts followed) of any Facebook page or profile URL as normalized JSON records.\n\n**Price:** billed per result - \\$6.00 per 1,000 results, capped at \\$120.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"facebook_followers","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"url":"https://www.facebook.com/nike"},"schema":{"additionalProperties":false,"example":{"limit":3,"url":"https://www.facebook.com/nike"},"properties":{"followType":{"default":"follower","description":"Which relation to fetch: 'follower' or 'following' (e.g. follower).","type":"string"},"limit":{"description":"Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.","maximum":20,"minimum":1,"type":"integer"},"url":{"description":"Facebook page or profile URL to list follows for (e.g. https://www.facebook.com/nasa).","type":"string"}},"required":["url"],"title":"Facebook followers input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Follower or following records for the target page/profile. Populated whenever the provider has data for the entity.","items":{"properties":{"id":{"description":"The account's numeric Facebook ID, as a string. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"URL of the account's profile picture, with tracking query params stripped. Empty when the upstream omits it.","type":"string"},"name":{"description":"The account's public display name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Canonical URL of the account's Facebook profile, with tracking query params stripped. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","name","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"Whether the page/profile was found and returned follower or following records.","type":"boolean"}},"required":["found","data"],"title":"Facebook followers output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Facebook Followers","tags":["facebook"],"x-payment-info":{"price":{"currency":"USD","max":"0.120000","min":"0.000000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/facebook.group_posts":{"post":{"description":"Fetch recent posts from any public Facebook group by URL: text, author, reactions, and comment counts.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"facebook_group_posts","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.facebook.com/groups/1270525996445602/"},"schema":{"additionalProperties":false,"example":{"url":"https://www.facebook.com/groups/1270525996445602/"},"properties":{"cursor":{"description":"Pagination cursor from a previous response to fetch the next page.","type":"string"},"sort":{"description":"Ordering for the returned posts (e.g. TOP_POSTS).","enum":["TOP_POSTS","RECENT_ACTIVITY","CHRONOLOGICAL","CHRONOLOGICAL_LISTINGS"],"type":"string"},"url":{"description":"The URL of a public Facebook group to fetch posts from (e.g. https://www.facebook.com/groups/1270525996445602/).","type":"string"}},"required":["url"],"title":"Facebook Group Posts input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"nextCursor":{"type":"string"},"posts":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"authorId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorName":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"commentCount":{"type":"integer"},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"permalink":{"type":"string"},"publishTime":{"description":"Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"reactionCount":{"type":"integer"},"text":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","text","url","permalink","publishTime","reactionCount","commentCount","authorName","authorId"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["nextCursor","posts"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Facebook Group Posts output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Facebook Group Posts","tags":["facebook"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/facebook.marketplace":{"post":{"description":"Search Facebook Marketplace listings by keyword near a location, filter by price, condition, delivery, recency, and availability, and get title, price, location, and image as normalized JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"facebook_marketplace","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"lat":"30.2677","lng":"-97.7475","priceMax":500,"priceMin":100,"query":"bike"},"schema":{"additionalProperties":false,"example":{"lat":"30.2677","lng":"-97.7475","priceMax":500,"priceMin":100,"query":"bike"},"properties":{"availability":{"description":"Filter by availability: available (default), sold, or all (e.g. sold).","enum":["available","sold","all"],"type":"string"},"condition":{"description":"Only return listings in this condition (e.g. used_good).","enum":["new","used_like_new","used_good","used_fair"],"type":"string"},"cursor":{"description":"Pagination cursor from a previous response to fetch the next page.","type":"string"},"dateListed":{"description":"Only return listings posted within this window (e.g. last_7_days).","enum":["all","last_24_hours","last_7_days","last_30_days"],"type":"string"},"deliveryMethod":{"description":"Only return listings offering this delivery method (e.g. shipping).","enum":["all","local_pickup","shipping"],"type":"string"},"lat":{"description":"Latitude of the search location (e.g. '30.2677').","type":"string"},"lng":{"description":"Longitude of the search location (e.g. '-97.7475').","type":"string"},"priceMax":{"description":"Maximum listing price in whole currency units, e.g. 500 for $500. Facebook may mix in a few suggested listings outside the range.","minimum":0,"type":"integer"},"priceMin":{"description":"Minimum listing price in whole currency units, e.g. 100 for $100. Facebook may mix in a few suggested listings outside the range.","minimum":0,"type":"integer"},"query":{"description":"Search keyword for Marketplace listings (e.g. 'bike').","type":"string"},"sort":{"description":"Sort order for the returned listings (e.g. price_ascend).","enum":["suggested","distance_ascend","creation_time_descend","price_ascend","price_descend"],"type":"string"}},"required":["query","lat","lng"],"title":"Facebook Marketplace input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"hasNextPage":{"type":"boolean"},"listings":{"items":{"properties":{"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"isSold":{"type":"boolean"},"locationName":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"photoUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"priceAmount":{"description":"Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"priceFormatted":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","url","title","priceFormatted","priceAmount","locationName","photoUrl","isSold"],"type":"object"},"type":"array"},"nextCursor":{"type":"string"}},"required":["nextCursor","hasNextPage","listings"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Facebook Marketplace output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Facebook Marketplace","tags":["facebook"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/facebook.marketplace_item":{"post":{"description":"Fetch full details for a single Facebook Marketplace listing by ID or URL (title, price, location, photos, and attributes) as normalized JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"facebook_marketplace_item","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.facebook.com/marketplace/item/1656586118821988/"},"schema":{"additionalProperties":false,"example":{"url":"https://www.facebook.com/marketplace/item/1656586118821988/"},"properties":{"id":{"description":"Facebook Marketplace item ID.","type":"string"},"url":{"description":"Facebook Marketplace item URL.","type":"string"}},"title":"Facebook Marketplace Item input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"categoryId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"creationTime":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"currency":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"description":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"isLive":{"type":"boolean"},"isSold":{"type":"boolean"},"locationText":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"priceAmount":{"description":"Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"priceFormatted":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","url","title","description","creationTime","locationText","priceFormatted","priceAmount","currency","categoryId","isSold","isLive"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Facebook Marketplace Item output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Facebook Marketplace Item","tags":["facebook"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/facebook.marketplace_location_search":{"post":{"description":"Resolve a place name to Facebook Marketplace locations with coordinates and metadata as normalized JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"facebook_marketplace_location_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"query":"Austin"},"schema":{"additionalProperties":false,"example":{"query":"Austin"},"properties":{"query":{"description":"Location search query (e.g. a city name).","type":"string"}},"required":["query"],"title":"Facebook Marketplace Location Search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"locations":{"items":{"properties":{"city":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"latitude":{"description":"Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"longitude":{"description":"Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"name":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"pageId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"postalCode":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"subtitle":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["name","subtitle","pageId","city","postalCode","latitude","longitude"],"type":"object"},"type":"array"}},"required":["locations"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Facebook Marketplace Location Search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Facebook Marketplace Location Search","tags":["facebook"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/facebook.page_contact":{"post":{"description":"Look up a Facebook Page's public contact details (email, phone, website, and address) by page URL or ID.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"facebook_page_contact","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"page":"https://www.facebook.com/joesstonecrab"},"schema":{"additionalProperties":false,"example":{"page":"https://www.facebook.com/joesstonecrab"},"properties":{"language":{"default":"en-US","description":"Locale code for the returned data (e.g. en-US).","type":"string"},"page":{"description":"Facebook Page URL or page ID to look up (e.g. https://www.facebook.com/nasa).","type":"string"}},"required":["page"],"title":"Facebook page contact info input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Contact record for the requested Facebook Page (one item). Populated whenever the provider has data for the entity.","items":{"properties":{"address":{"description":"The page's public physical address. Empty when the page lists none.","type":"string"},"category":{"description":"The page's primary category (e.g. \"Seafood Restaurant\"). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"email":{"description":"The page's public contact email. Empty when the page lists none.","type":"string"},"followers":{"description":"The page's follower count.","type":"integer"},"image":{"description":"URL of the page's profile picture, with tracking query params stripped. Empty when the upstream omits it.","type":"string"},"phone":{"description":"The page's public phone number. Empty when the page lists none.","type":"string"},"title":{"description":"The page's public name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Canonical URL of the Facebook Page, with tracking query params stripped. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"website":{"description":"The page's public website URL. Empty when the page lists none.","type":"string"}},"required":["title","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"Whether the page was found and returned contact records.","type":"boolean"}},"required":["found","data"],"title":"Facebook page contact info output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Facebook Page Contact Info","tags":["facebook"],"x-payment-info":{"price":{"currency":"USD","max":"0.010000","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/facebook.photos":{"post":{"description":"Fetch recent photos posted by any public Facebook page or profile (image URLs, captions, and dimensions) as normalized JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"facebook_photos","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.facebook.com/Spurs"},"schema":{"additionalProperties":false,"example":{"url":"https://www.facebook.com/Spurs"},"properties":{"cursor":{"description":"Pagination cursor from a previous response to fetch the next page.","type":"string"},"url":{"description":"URL of the public Facebook page or profile to fetch photos from (e.g. https://www.facebook.com/Spurs).","type":"string"}},"required":["url"],"title":"Facebook Page Photos input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"nextCursor":{"type":"string"},"nextPageId":{"type":"string"},"photos":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"caption":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"imageHeight":{"type":"integer"},"imageUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"imageWidth":{"type":"integer"},"photoId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"thumbnail":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","photoId","caption","url","thumbnail","imageUrl","imageWidth","imageHeight"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["nextCursor","nextPageId","photos"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Facebook Page Photos output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Facebook Page Photos","tags":["facebook"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/facebook.post":{"post":{"description":"Fetch a single Facebook post by URL with its text and engagement counts (likes, comments, shares, views).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"facebook_post","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.facebook.com/reel/2166091230582141/"},"schema":{"additionalProperties":false,"example":{"url":"https://www.facebook.com/reel/2166091230582141/"},"properties":{"url":{"description":"Full Facebook post URL.","type":"string"}},"required":["url"],"title":"Facebook post input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"comments":{"type":"integer"},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"type":"integer"},"shares":{"type":"integer"},"text":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"views":{"type":"integer"}},"required":["id","text","likes","comments","shares","views"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Facebook post output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Facebook Post","tags":["facebook"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/facebook.post_comments":{"post":{"description":"List the comments on a Facebook post by URL with cursor pagination (text, author, reactions, reply count).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"facebook_post_comments","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.facebook.com/reel/2166091230582141/"},"schema":{"additionalProperties":false,"anyOf":[{"required":["url"]},{"required":["feedbackId"]}],"example":{"url":"https://www.facebook.com/reel/2166091230582141/"},"properties":{"cursor":{"description":"Pagination cursor from a previous response's nextCursor.","type":"string"},"feedbackId":{"description":"Facebook feedback id for the post (alternative to url).","type":"string"},"url":{"description":"Full Facebook post URL.","type":"string"}},"title":"Facebook post comments input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Wrapper holding the comments array plus pagination, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"comments":{"description":"Comments on the post. Populated whenever the provider has data for the entity.","items":{"properties":{"author":{"description":"Display name of the comment author. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"id":{"description":"Comment identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"reactions":{"description":"Number of reactions on the comment.","type":"integer"},"replies":{"description":"Number of replies to the comment.","type":"integer"},"text":{"description":"Comment text content. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","text","author","reactions","replies","createdUtc"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"nextCursor":{"description":"Cursor for the next page of comments; empty when there are no more.","type":"string"}},"required":["comments","nextCursor"],"type":"object"}]},"found":{"description":"True when comments were found; false when the lookup returned nothing.","type":"boolean"}},"required":["found","data"],"title":"Facebook post comments output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Facebook Post Comments","tags":["facebook"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/facebook.post_transcript":{"post":{"description":"Get the spoken-word transcript of any public Facebook video post by URL as normalized JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"facebook_post_transcript","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.facebook.com/reel/2166091230582141/"},"schema":{"additionalProperties":false,"example":{"url":"https://www.facebook.com/reel/2166091230582141/"},"properties":{"url":{"description":"The Facebook post or video URL.","type":"string"}},"required":["url"],"title":"Facebook Post Transcript input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"transcript":{"type":"string"}},"required":["transcript"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Facebook Post Transcript output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Facebook Post Transcript","tags":["facebook"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/facebook.profile":{"post":{"description":"Fetch a Facebook page's public profile (likes, followers, category, about) by URL or handle.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"facebook_profile","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.facebook.com/nike"},"schema":{"additionalProperties":false,"anyOf":[{"required":["url"]},{"required":["handle"]}],"example":{"url":"https://www.facebook.com/nike"},"properties":{"handle":{"description":"Facebook page handle/username.","type":"string"},"url":{"description":"Full Facebook page URL.","type":"string"}},"title":"Facebook profile input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"about":{"type":"string"},"avatarUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"category":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"followers":{"type":"integer"},"likes":{"type":"integer"},"name":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["name","category","likes","followers","about","avatarUrl"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Facebook profile output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Facebook Profile","tags":["facebook"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/facebook.profile_events":{"post":{"description":"List upcoming and past events hosted by any public Facebook page by URL (name, schedule, venue, and host) as normalized JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"facebook_profile_events","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.facebook.com/brickyardoldtown"},"schema":{"additionalProperties":false,"example":{"url":"https://www.facebook.com/brickyardoldtown"},"properties":{"cursor":{"description":"Pagination cursor from a previous response.","type":"string"},"url":{"description":"The Facebook page URL.","type":"string"}},"required":["url"],"title":"Facebook Page Events input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"events":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"city":{"type":"string"},"creatorName":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"dayTimeSentence":{"type":"string"},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"isCanceled":{"type":"boolean"},"isOnline":{"type":"boolean"},"isPast":{"type":"boolean"},"name":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"placeName":{"type":"string"},"startTimestamp":{"type":"integer"},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","name","url","dayTimeSentence","startTimestamp","placeName","city","creatorName","isOnline","isPast","isCanceled"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"hasNextPage":{"type":"boolean"},"nextCursor":{"type":"string"},"totalCount":{"type":"integer"}},"required":["nextCursor","hasNextPage","totalCount","events"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Facebook Page Events output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Facebook Page Events","tags":["facebook"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/facebook.profile_posts":{"post":{"description":"List a Facebook page's recent posts by URL or page id with cursor pagination (text, author, permalink).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"facebook_profile_posts","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.facebook.com/nike"},"schema":{"additionalProperties":false,"anyOf":[{"required":["url"]},{"required":["pageId"]}],"example":{"url":"https://www.facebook.com/nike"},"properties":{"cursor":{"description":"Pagination cursor from a previous response.","type":"string"},"pageId":{"description":"Facebook page id.","type":"string"},"url":{"description":"Full Facebook page/profile URL.","type":"string"}},"title":"Facebook profile posts input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"posts":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"author":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"text":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","text","url","author"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["posts"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Facebook profile posts output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Facebook Profile Posts","tags":["facebook"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/facebook.profile_reels":{"post":{"description":"List a Facebook page's reels by URL with cursor pagination (caption, view count, permalink, thumbnail).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"facebook_profile_reels","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.facebook.com/nike"},"schema":{"additionalProperties":false,"example":{"url":"https://www.facebook.com/nike"},"properties":{"cursor":{"description":"Pagination cursor from a previous response.","type":"string"},"url":{"description":"Full Facebook page/profile URL.","type":"string"}},"required":["url"],"title":"Facebook profile reels input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Wrapper holding the reels array, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"reels":{"description":"The profile's reels. Populated whenever the provider has data for the entity.","items":{"properties":{"caption":{"description":"Reel caption text. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"id":{"description":"Reel identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"thumbnail":{"description":"URL of the reel thumbnail image. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Canonical URL of the reel. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"views":{"description":"Number of views on the reel.","type":"integer"}},"required":["id","url","caption","views","thumbnail","createdUtc"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["reels"],"type":"object"}]},"found":{"description":"True when reels were found; false when the lookup returned nothing.","type":"boolean"}},"required":["found","data"],"title":"Facebook profile reels output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Facebook Profile Reels","tags":["facebook"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/facebook.search_companies":{"post":{"description":"Search the Meta Ad Library for advertisers by keyword and get matching pages: page ID, category, verification, follower counts, and linked Instagram.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"facebook_search_companies","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"query":"nike"},"schema":{"additionalProperties":false,"example":{"query":"nike"},"properties":{"query":{"description":"Keyword to search advertiser pages for (e.g. \"nike\").","type":"string"}},"required":["query"],"title":"Facebook company search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"companies":{"items":{"properties":{"category":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"country":{"type":"string"},"entityType":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"igFollowers":{"description":"Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"igUsername":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"imageUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"type":"integer"},"name":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"pageAlias":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"pageId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"verification":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["pageId","name","category","imageUrl","likes","verification","country","entityType","igUsername","igFollowers","pageAlias"],"type":"object"},"type":"array"}},"required":["companies"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Facebook company search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Facebook Company Search","tags":["facebook"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/facebook.search_pages":{"post":{"description":"Search Facebook Pages by keyword, optionally narrowed to a location, and get structured page profiles (name, category, followers, contact details).\n\n**Price:** billed per result - \\$1.00 per 1,000 requests base + \\$11.00 per 1,000 results, capped at \\$111.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"facebook_search_pages","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"query":"nike"},"schema":{"additionalProperties":false,"example":{"limit":3,"query":"nike"},"properties":{"limit":{"description":"Maximum number of results to return (1-10, default 10). You are billed per result returned, so a lower limit costs less.","maximum":10,"minimum":1,"type":"integer"},"location":{"description":"Optional free-text location to narrow the search: a city, province, or country (e.g. 'Berlin').","type":"string"},"query":{"description":"Keyword to search Facebook Pages for (e.g. 'coffee roasters').","type":"string"}},"required":["query"],"title":"Facebook page search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Matching Facebook Page records for the query. Populated whenever the provider has data for the entity.","items":{"properties":{"category":{"description":"The page's primary category (e.g. \"Sportswear Store\"). Empty when the upstream omits it.","type":"string"},"followers":{"description":"The page's follower count.","type":"integer"},"id":{"description":"The page's numeric Facebook ID, as a string. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"URL of the page's profile picture, with tracking query params stripped. Empty when the upstream omits it.","type":"string"},"likes":{"description":"The page's like count.","type":"integer"},"phone":{"description":"The page's public phone number. Empty when the upstream omits it.","type":"string"},"title":{"description":"The page's public name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Canonical URL of the Facebook Page, with tracking query params stripped. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"website":{"description":"The page's public website URL. Empty when the upstream omits it.","type":"string"}},"required":["id","title","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"Whether any matching pages were returned for the query.","type":"boolean"}},"required":["found","data"],"title":"Facebook page search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Facebook Page Search","tags":["facebook"],"x-payment-info":{"price":{"currency":"USD","max":"0.111000","min":"0.001000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/facebook.search_posts":{"post":{"description":"Search public Facebook posts by keyword, optionally filtered by location, and get structured post records (text, author, engagement).\n\n**Price:** billed per result - \\$3.00 per 1,000 results, capped at \\$60.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"facebook_search_posts","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"query":"nike"},"schema":{"additionalProperties":false,"example":{"limit":3,"query":"nike"},"properties":{"endDate":{"description":"Only return posts published on or before this date, format YYYY-MM-DD (e.g. 2024-12-31).","type":"string"},"limit":{"description":"Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.","maximum":20,"minimum":1,"type":"integer"},"location":{"description":"Optional location to narrow results; include both city and country for best matches (e.g. 'Paris, France').","type":"string"},"query":{"description":"Keyword or phrase to search Facebook posts for (e.g. 'product launch').","type":"string"},"startDate":{"description":"Only return posts published on or after this date, format YYYY-MM-DD (e.g. 2024-01-01).","type":"string"}},"required":["query"],"title":"Facebook post search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Matching public Facebook post records for the query. Populated whenever the provider has data for the entity.","items":{"properties":{"authorName":{"description":"Display name of the post's author. Empty when the upstream omits it.","type":"string"},"authorUrl":{"description":"Canonical profile URL of the post's author, with tracking query params stripped. Empty when the upstream omits it.","type":"string"},"commentCount":{"description":"Total number of comments on the post.","type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"id":{"description":"The post's numeric Facebook ID, as a string. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"URL of the post's primary image, with tracking query params stripped. Empty for text-only or video posts.","type":"string"},"reactionCount":{"description":"Total number of reactions on the post.","type":"integer"},"shareCount":{"description":"Total number of shares/reshares of the post.","type":"integer"},"text":{"description":"The post's text/message. Empty for media-only posts with no caption.","type":"string"},"url":{"description":"Canonical URL of the post, with tracking query params stripped. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","url","text","createdUtc"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"Whether any matching posts were returned for the query.","type":"boolean"}},"required":["found","data"],"title":"Facebook post search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Facebook Post Search","tags":["facebook"],"x-payment-info":{"price":{"currency":"USD","max":"0.060000","min":"0.000000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/fiverr.search":{"post":{"description":"Extract Fiverr gig listings from any search or category URL: titles, sellers, ratings, and pricing as structured JSON.\n\n**Price:** billed per result - \\$1.50 per 1,000 results, capped at \\$30.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"fiverr_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"url":"https://www.fiverr.com/search/gigs?query=logo%20design"},"schema":{"additionalProperties":false,"example":{"limit":3,"url":"https://www.fiverr.com/search/gigs?query=logo%20design"},"properties":{"limit":{"description":"Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.","maximum":20,"minimum":1,"type":"integer"},"url":{"description":"Fiverr search or category page URL to extract gigs from.","type":"string"}},"required":["url"],"title":"Fiverr gig search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Gig records from the search or category URL. Operators may return additional fields beyond those documented here. Populated whenever the provider has data for the entity.","items":{"properties":{"duration":{"description":"Delivery time in days.","type":"integer"},"gigId":{"description":"Stable Fiverr gig identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"gigUrl":{"description":"Canonical Fiverr URL for the gig. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"Primary gig thumbnail URL.","type":"string"},"price":{"description":"Starting price in USD.","type":"number"},"sellerCountry":{"description":"Seller country code.","type":"string"},"sellerDisplayName":{"description":"Seller display name.","type":"string"},"sellerLevel":{"description":"Fiverr seller level.","type":"string"},"sellerName":{"description":"Seller username.","type":"string"},"sellerRatingCount":{"description":"Number of seller ratings.","type":"integer"},"sellerRatingScore":{"description":"Average seller rating.","type":"number"},"sellerUrl":{"description":"Seller profile URL.","type":"string"},"title":{"description":"Gig headline. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["gigId","title","gigUrl"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Fiverr gig search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Fiverr Gig Search","tags":["fiverr"],"x-payment-info":{"price":{"currency":"USD","max":"0.030000","min":"0.000000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/github.repository":{"post":{"description":"Fetch a GitHub repository's metadata by URL (stars, forks, language, topics, license, and timestamps).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"github_repository","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://github.com/facebook/react"},"schema":{"additionalProperties":false,"example":{"url":"https://github.com/facebook/react"},"properties":{"url":{"description":"GitHub repository URL (e.g. https://github.com/facebook/react).","type":"string"}},"required":["url"],"title":"GitHub repository input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The repository record, or null when not found.","oneOf":[{"type":"null"},{"properties":{"archived":{"description":"Whether the repository is archived.","type":"boolean"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"defaultBranch":{"description":"Name of the default branch. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"description":{"description":"Short repository description, or null if none.","type":["string","null"]},"fork":{"description":"Whether the repository is a fork.","type":"boolean"},"forks":{"description":"Number of forks.","type":"integer"},"fullName":{"description":"Full repository name in owner/name form. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"homepage":{"description":"Project homepage URL, or null if none.","type":["string","null"]},"language":{"description":"Primary programming language, or null if undetected.","type":["string","null"]},"license":{"description":"License name, or null if unlicensed.","type":["string","null"]},"name":{"description":"Repository short name (without owner). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"openIssues":{"description":"Count of open issues and pull requests.","type":"integer"},"owner":{"description":"Login of the repository owner (user or organization). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"pushedAt":{"description":"Last push timestamp (ISO 8601). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"stars":{"description":"Number of stargazers.","type":"integer"},"topics":{"description":"Repository topic tags.","items":{"type":"string"},"type":"array"},"updatedAt":{"description":"Last metadata update timestamp (ISO 8601). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Canonical URL of the repository. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"watchers":{"description":"Number of watchers.","type":"integer"}},"required":["name","fullName","url"],"type":"object"}]},"found":{"description":"Whether a repository was found for the requested URL.","type":"boolean"}},"required":["found","data"],"title":"GitHub repository output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"GitHub Repository","tags":["github"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/github.trending_developers":{"post":{"description":"List trending GitHub developers (rank, username, name, avatar, and their most popular repository), optionally filtered by programming language and time range.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"github_trending_developers","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"language":"go","since":"weekly"},"schema":{"additionalProperties":false,"example":{"language":"go","since":"weekly"},"properties":{"language":{"description":"Programming language to filter trending developers (e.g. javascript, python, go).","type":"string"},"since":{"description":"Trending range: daily, weekly, or monthly (defaults to daily).","type":"string"}},"required":[],"title":"GitHub Trending Developers input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"developers":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"avatarUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"name":{"type":"string"},"popularRepo":{"type":"string"},"popularRepoDescription":{"type":"string"},"popularRepoUrl":{"type":"string"},"rank":{"type":"integer"},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"username":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["rank","username","name","url","avatarUrl","popularRepo","popularRepoUrl","popularRepoDescription"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"language":{"type":"string"},"since":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["since","language","developers"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"GitHub Trending Developers output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"GitHub Trending Developers","tags":["github"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/github.trending_repositories":{"post":{"description":"List GitHub Trending repositories (rank, stars, stars gained today, language, and description), filterable by language and time window.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"github_trending_repositories","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"language":"python","since":"daily"},"schema":{"additionalProperties":false,"example":{"language":"python","since":"daily"},"properties":{"language":{"description":"Filter by programming language (e.g. \"go\", \"typescript\"). Omit for all languages.","type":"string"},"since":{"default":"daily","description":"Trending window.","enum":["daily","weekly","monthly"],"type":"string"}},"title":"GitHub trending repositories input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"repos":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"description":{"type":"string"},"forks":{"type":"integer"},"fullName":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"language":{"type":"string"},"rank":{"type":"integer"},"stars":{"type":"integer"},"starsToday":{"type":"integer"},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["rank","fullName","url","description","language","stars","forks","starsToday"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["repos"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"GitHub trending repositories output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"GitHub Trending Repositories","tags":["github"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/github.user":{"post":{"description":"Fetch a GitHub user's public profile by handle (name, bio, company, location, followers, and repo counts).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"github_user","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"torvalds"},"schema":{"additionalProperties":false,"example":{"handle":"torvalds"},"properties":{"handle":{"description":"GitHub username.","type":"string"}},"required":["handle"],"title":"GitHub user input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The user profile record, or null when not found.","oneOf":[{"type":"null"},{"description":"GitHub user identity and basic public stats; richer profile fields (company, blog, location, twitterUsername, type, publicGists, createdUtc) are returned when available.","properties":{"avatarUrl":{"description":"URL of the profile avatar image. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"bio":{"description":"Profile bio text.","type":"string"},"blog":{"description":"Blog or website URL from the profile.","type":"string"},"company":{"description":"Company listed on the profile.","type":"string"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"followers":{"description":"Number of followers.","type":"integer"},"following":{"description":"Number of accounts the user follows.","type":"integer"},"location":{"description":"Location listed on the profile.","type":"string"},"login":{"description":"GitHub username (handle). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"name":{"description":"Display name, or empty string if unset. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"publicGists":{"description":"Count of public gists.","type":"integer"},"publicRepos":{"description":"Count of public repositories.","type":"integer"},"twitterUsername":{"description":"Linked X/Twitter username.","type":"string"},"type":{"description":"\"User\" or \"Organization\".","type":"string"}},"required":["login","name","bio","avatarUrl","publicRepos","followers","following"],"type":"object"}]},"found":{"description":"Whether a user was found for the requested handle.","type":"boolean"}},"required":["found","data"],"title":"GitHub user output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"GitHub User","tags":["github"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/github.user_activity":{"post":{"description":"List a GitHub user's public contribution activity by handle (grouped monthly summaries of commits, pull requests, and issues with repository links) for a given year.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"github_user_activity","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"kentcdodds"},"schema":{"additionalProperties":false,"example":{"handle":"kentcdodds"},"properties":{"cursor":{"description":"Pagination cursor from a previous response (pages backward by month).","type":"string"},"handle":{"description":"GitHub username.","type":"string"},"year":{"description":"Year of contribution activity to return (defaults to the current year).","type":"string"}},"required":["handle"],"title":"GitHub User Activity input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"activity":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"summary":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["summary"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"month":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"nextCursor":{"type":"string"},"noActivity":{"type":"boolean"},"username":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"year":{"type":"integer"}},"required":["username","year","month","noActivity","nextCursor","activity"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"GitHub User Activity output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"GitHub User Activity","tags":["github"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/github.user_contributions":{"post":{"description":"Fetch a GitHub user's contribution graph for a year (total contributions plus per-day counts and heatmap intensity).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"github_user_contributions","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"torvalds","year":2024},"schema":{"additionalProperties":false,"example":{"handle":"torvalds","year":2024},"properties":{"handle":{"description":"GitHub username.","type":"string"},"year":{"description":"Calendar year of the contribution graph. Defaults to the current year.","type":"integer"}},"required":["handle"],"title":"GitHub user contributions input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The contribution graph record, or null when not found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"days":{"description":"Per-day contribution buckets for the year. Populated whenever the provider has data for the entity.","items":{"properties":{"count":{"description":"Number of contributions on this day.","type":"integer"},"dateUtc":{"description":"UTC epoch seconds at 00:00 UTC of the contribution day. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"intensity":{"description":"Heatmap level 0-4.","type":"integer"}},"required":["dateUtc","count","intensity"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"total":{"description":"Total contributions across the year.","type":"integer"},"username":{"description":"GitHub username the contribution graph belongs to. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"year":{"description":"Calendar year of the contribution graph.","type":"integer"}},"required":["username","year","total","days"],"type":"object"}]},"found":{"description":"Whether contribution data was found for the requested handle.","type":"boolean"}},"required":["found","data"],"title":"GitHub user contributions output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"GitHub User Contributions","tags":["github"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/github.user_followers":{"post":{"description":"List a GitHub user's followers by handle (each follower's login, type, avatar, and profile URL) with pagination.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"github_user_followers","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"torvalds"},"schema":{"additionalProperties":false,"example":{"handle":"torvalds"},"properties":{"cursor":{"description":"Pagination cursor from a previous response (page number, defaults to 1).","type":"string"},"handle":{"description":"GitHub username.","type":"string"}},"required":["handle"],"title":"GitHub User Followers input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"followers":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"avatarUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"type":"integer"},"login":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"siteAdmin":{"type":"boolean"},"type":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","login","type","avatarUrl","url","siteAdmin"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"nextCursor":{"type":"string"}},"required":["nextCursor","followers"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"GitHub User Followers output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"GitHub User Followers","tags":["github"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/github.user_following":{"post":{"description":"List the GitHub users a given user follows by handle (each account's login, type, avatar, and profile URL) with pagination.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"github_user_following","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"kentcdodds"},"schema":{"additionalProperties":false,"example":{"handle":"kentcdodds"},"properties":{"cursor":{"description":"Pagination cursor from a previous response (page number, defaults to 1).","type":"string"},"handle":{"description":"GitHub username.","type":"string"}},"required":["handle"],"title":"GitHub User Following input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"following":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"avatarUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"type":"integer"},"login":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"siteAdmin":{"type":"boolean"},"type":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","login","type","avatarUrl","url","siteAdmin"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"nextCursor":{"type":"string"}},"required":["nextCursor","following"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"GitHub User Following output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"GitHub User Following","tags":["github"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/github.user_pull_requests":{"post":{"description":"List a GitHub user's public pull requests by handle (title, repository, state, creation date, and URL) with optional date filtering and pagination.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"github_user_pull_requests","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"torvalds"},"schema":{"additionalProperties":false,"example":{"handle":"torvalds"},"properties":{"cursor":{"description":"Pagination cursor from a previous response (page number, defaults to 1).","type":"string"},"handle":{"description":"GitHub username.","type":"string"},"since":{"description":"Only include pull requests created on or after this date (YYYY-MM-DD).","type":"string"},"until":{"description":"Only include pull requests created on or before this date (YYYY-MM-DD).","type":"string"}},"required":["handle"],"title":"GitHub User Pull Requests input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The pull request listing record, or null when not found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"hasMore":{"description":"Whether more pull requests are available beyond this page.","type":"boolean"},"nextCursor":{"description":"Opaque cursor for the next page, or empty string when none.","type":"string"},"pullRequests":{"description":"The user's public pull requests for this page. Populated whenever the provider has data for the entity.","items":{"properties":{"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"repo":{"description":"Repository the pull request targets, in owner/name form. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"state":{"description":"Pull request state (e.g. open, closed, merged). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Pull request title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Canonical URL of the pull request. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["title","repo","state","createdUtc","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["nextCursor","hasMore","pullRequests"],"type":"object"}]},"found":{"description":"Whether pull request data was found for the requested handle.","type":"boolean"}},"required":["found","data"],"title":"GitHub User Pull Requests output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"GitHub User Pull Requests","tags":["github"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/github.user_repositories":{"post":{"description":"List a GitHub user's public repositories (name, description, language, stars, and forks) with sorting and cursor pagination.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"github_user_repositories","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"torvalds"},"schema":{"additionalProperties":false,"example":{"handle":"torvalds"},"properties":{"cursor":{"default":1,"description":"1-based results page. Use the output's nextCursor to paginate.","minimum":1,"type":"integer"},"direction":{"description":"Sort direction, ascending or descending, paired with sort.","enum":["asc","desc"],"type":"string"},"handle":{"description":"GitHub username.","type":"string"},"sort":{"default":"updated","description":"Repository ordering.","enum":["created","updated","pushed","full_name"],"type":"string"},"type":{"description":"Which repositories to include: owner (default), all, or member.","enum":["owner","all","member"],"type":"string"}},"required":["handle"],"title":"GitHub user repositories input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"hasMore":{"type":"boolean"},"nextCursor":{"type":"integer"},"repos":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"archived":{"type":"boolean"},"description":{"type":"string"},"fork":{"type":"boolean"},"forks":{"type":"integer"},"fullName":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"language":{"type":"string"},"name":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"pushedAt":{"type":"string"},"stars":{"type":"integer"},"updatedAt":{"type":"string"},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["name","fullName","description","url","language","stars","forks","fork","archived","updatedAt","pushedAt"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["nextCursor","hasMore","repos"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"GitHub user repositories output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"GitHub User Repositories","tags":["github"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/glassdoor.jobs":{"post":{"description":"Search Glassdoor job listings by keyword and location, or scrape any Glassdoor company or job search page URL - up to 20 normalized job records per request.\n\n**Price:** billed per result - \\$5.00 per 1,000 requests base + \\$4.75 per 1,000 results, capped at \\$100.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"glassdoor_jobs","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"location":"United States","postedLimit":"month","query":"software engineer"},"schema":{"additionalProperties":false,"anyOf":[{"required":["query"]},{"required":["url"]}],"example":{"limit":3,"location":"United States","postedLimit":"month","query":"software engineer"},"properties":{"easyApply":{"description":"When true, only return jobs offering Easy Apply. Keyword mode only.","type":"boolean"},"limit":{"description":"Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.","maximum":20,"minimum":1,"type":"integer"},"location":{"description":"City, region, or country to search within (keyword mode; e.g. United States, New York).","type":"string"},"postedLimit":{"description":"Only jobs posted within this window (past 24 hours, week, or month). Keyword mode only.","enum":["24h","week","month"],"type":"string"},"query":{"description":"Job title or keywords to search (keyword mode). Provide this or a url.","type":"string"},"sortBy":{"description":"Sort order: most recent (date) or best match (relevance). Keyword mode only.","enum":["date","relevance"],"type":"string"},"url":{"description":"Alternatively, a Glassdoor company or job search page URL to scrape (e.g. https://www.glassdoor.com/Jobs/Google-Jobs-E9079.htm). The filters below apply in keyword (query) mode.","type":"string"},"workplaceType":{"description":"Filter by workplace type (remote, hybrid, or onsite). Keyword mode only.","enum":["remote","hybrid","onsite"],"type":"string"}},"title":"Glassdoor Jobs input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The results wrapper, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Job listing records for the search or company page. Populated whenever the provider has data for the entity.","items":{"description":"A Glassdoor job listing: title, employer, location, salary estimate, rating, and the listing URL.","properties":{"ageInDays":{"description":"Days since the listing was posted.","type":"integer"},"company":{"description":"Hiring employer name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"description":{"description":"Full job description (may contain HTML).","type":"string"},"id":{"description":"Glassdoor job listing id. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"location":{"description":"Job location (city, region).","type":"string"},"rating":{"description":"Employer Glassdoor star rating (0 when not rated).","type":"number"},"salary":{"description":"Estimated salary range for the listing.","properties":{"currency":{"description":"ISO currency code for the salary figures.","type":"string"},"max":{"description":"High end of the estimated salary range.","type":"number"},"median":{"description":"Median of the estimated salary range.","type":"number"},"min":{"description":"Low end of the estimated salary range.","type":"number"},"period":{"description":"Pay period the figures cover (e.g. ANNUAL, HOURLY).","type":"string"}},"type":"object"},"title":{"description":"Job title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Absolute Glassdoor job listing URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","title","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when at least one job listing was returned.","type":"boolean"}},"required":["found","data"],"title":"Glassdoor Jobs output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Glassdoor Jobs","tags":["glassdoor"],"x-payment-info":{"price":{"currency":"USD","max":"0.100000","min":"0.005000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/google.autocomplete":{"post":{"description":"Get Google search autocomplete suggestions for a partial query (keyword ideas).\n\n**Price:** \\$0.99 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"google_autocomplete","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"query":"best coff"},"schema":{"additionalProperties":false,"example":{"query":"best coff"},"properties":{"gl":{"default":"us","description":"Two-letter country code for result localization (e.g. us, gb, de).","type":"string"},"hl":{"default":"en","description":"Two-letter interface and results language code for the suggestions (e.g. en, es, de).","type":"string"},"query":{"description":"The partial Google search query.","type":"string"}},"required":["query"],"title":"Google Autocomplete input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Result payload, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"query":{"description":"The partial query that was searched.","type":"string"},"suggestions":{"description":"Autocomplete suggestion records. Populated whenever the provider has data for the entity.","items":{"properties":{"value":{"description":"Suggested query text. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["value"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["query","suggestions"],"type":"object"}]},"found":{"description":"True when at least one autocomplete suggestion was returned.","type":"boolean"}},"required":["found","data"],"title":"Google Autocomplete output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Google Autocomplete","tags":["google"],"x-payment-info":{"price":{"amount":"0.000990","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/google.images":{"post":{"description":"Run a Google Images search and get structured results: image URLs, dimensions, titles, and source pages.\n\n**Price:** billed per result - \\$0.99 per 1,000 requests base + \\$0.09 per 1,000 results, capped at \\$1.98 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"google_images","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"gl":"us","hl":"en","limit":5,"query":"golden retriever"},"schema":{"additionalProperties":false,"example":{"gl":"us","hl":"en","limit":5,"query":"golden retriever"},"properties":{"autocorrect":{"description":"Toggle Google spelling autocorrect (default true). Set false to search the exact query without correction.","type":"boolean"},"gl":{"default":"us","description":"Two-letter country code for result localization (e.g. us, gb, de).","type":"string"},"hl":{"default":"en","description":"Two-letter interface and results language code (e.g. en, es, de).","type":"string"},"limit":{"default":20,"description":"Maximum number of images to return (1-100, default 20). Requests for 10 results or fewer are billed at a lower rate than larger requests.","maximum":100,"minimum":1,"type":"integer"},"location":{"description":"Fine-grained location for result localization, given as a canonical Google location string (e.g. 'New York, United States', 'London, United Kingdom'). More specific than the country-level gl.","type":"string"},"query":{"description":"Image search query (e.g. golden gate bridge at sunset).","type":"string"},"timeframe":{"description":"Restrict results to a recent time window: 1h, 1d, 7d, 1y, or all. Default all (no time restriction).","type":"string"}},"required":["query"],"title":"Google Images input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The result wrapper, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Image result records: image URL, dimensions, title, and the source page it appears on. Populated whenever the provider has data for the entity.","items":{"properties":{"height":{"description":"Full image height in pixels.","type":"integer"},"source":{"description":"Host domain of the page the image appears on. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"sourceUrl":{"description":"URL of the page the image appears on. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"thumbnailUrl":{"description":"URL to a thumbnail of the image.","type":"string"},"title":{"description":"Image result title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Direct URL to the full-size image. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"width":{"description":"Full image width in pixels.","type":"integer"}},"required":["url","title"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when at least one image result was returned.","type":"boolean"}},"required":["found","data"],"title":"Google Images output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Google Images","tags":["google"],"x-payment-info":{"price":{"currency":"USD","max":"0.001980","min":"0.000990","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/google.lens":{"post":{"description":"Reverse image search: find web pages and visual matches for an image URL.\n\n**Price:** \\$2.97 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"google_lens","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://i.imgur.com/HBrB8p0.png"},"schema":{"additionalProperties":false,"example":{"url":"https://i.imgur.com/HBrB8p0.png"},"properties":{"url":{"description":"Public URL of the image to search with.","format":"uri","type":"string"}},"required":["url"],"title":"Google Lens input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Result payload, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"results":{"description":"Visual match result records. Populated whenever the provider has data for the entity.","items":{"properties":{"image":{"description":"Matched image URL.","format":"uri","type":"string"},"link":{"description":"URL to the matching web page. Populated whenever the provider has data for the entity.","format":"uri","type":"string","x-anyapi-must-populate":true},"source":{"description":"Source site name.","type":"string"},"thumbnailUrl":{"description":"Thumbnail image URL for the match.","format":"uri","type":"string"},"title":{"description":"Title of the matching web page. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["title","link"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"url":{"description":"The input image URL that was searched.","type":"string"}},"required":["url","results"],"type":"object"}]},"found":{"description":"True when at least one visual match was returned.","type":"boolean"}},"required":["found","data"],"title":"Google Lens output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Google Lens","tags":["google"],"x-payment-info":{"price":{"amount":"0.002970","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/google.news":{"post":{"description":"Search Google News by keyword and get fresh articles (headlines, sources, links, and publish times) as clean JSON.\n\n**Price:** \\$0.99 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"google_news","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"gl":"us","hl":"en","query":"openai"},"schema":{"additionalProperties":false,"example":{"gl":"us","hl":"en","query":"openai"},"properties":{"gl":{"default":"us","description":"Two-letter country code for result localization (e.g. us, gb, de).","type":"string"},"hl":{"default":"en","description":"Two-letter interface and results language code (e.g. en, es, de).","type":"string"},"limit":{"description":"Requested article count (1-20, default 20). Google News returns its latest matching articles and may return more or fewer than requested. Price is flat per request.","maximum":20,"minimum":1,"type":"integer"},"location":{"description":"Fine-grained location for result localization, given as a canonical Google location string (e.g. 'New York, United States', 'London, United Kingdom'). More specific than the country-level gl.","type":"string"},"query":{"description":"News search query; supports operators like '-', 'OR', and 'site:' (e.g. bitcoin site:cnn.com).","type":"string"},"timeframe":{"default":"7d","description":"Time window for results: 1h, 1d, 7d, 1y, or all (e.g. 1d).","type":"string"}},"required":["query"],"title":"Google News input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Result payload, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Article records: headline, source name, article link, and publish time. Populated whenever the provider has data for the entity.","items":{"properties":{"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"snippet":{"description":"Article snippet when available.","type":"string"},"source":{"description":"Publisher name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Article headline. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Article link. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["title","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when the search returned at least one article.","type":"boolean"}},"required":["found","data"],"title":"Google News output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Google News","tags":["google"],"x-payment-info":{"price":{"amount":"0.000990","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/google.patents":{"post":{"description":"Search Google Patents with title, patent number, inventor, assignee, key dates, and PDF link.\n\n**Price:** \\$0.99 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"google_patents","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"query":"wireless charging"},"schema":{"additionalProperties":false,"example":{"query":"wireless charging"},"properties":{"query":{"description":"The Google Patents search query.","type":"string"}},"required":["query"],"title":"Google Patents input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Result payload, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"query":{"description":"The query that was searched.","type":"string"},"results":{"description":"Patent result records.","items":{"properties":{"assignee":{"description":"Patent assignee.","type":"string"},"filedUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"grantedUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"image":{"description":"First patent figure thumbnail image URL.","format":"uri","type":"string"},"inventor":{"description":"Named inventor or inventors.","type":"string"},"link":{"description":"URL to the patent. Populated whenever the provider has data for the entity.","format":"uri","type":"string","x-anyapi-must-populate":true},"pdfUrl":{"description":"URL to an available patent PDF.","format":"uri","type":"string"},"priorityUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"publicationNumber":{"description":"Patent publication number (e.g. US11303135B2). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"publishedUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"snippet":{"description":"Short patent description snippet.","type":"string"},"title":{"description":"Patent title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["title","link","publicationNumber"],"type":"object"},"type":"array"}},"required":["query","results"],"type":"object"}]},"found":{"description":"True when at least one patent result was returned.","type":"boolean"}},"required":["found","data"],"title":"Google Patents output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Google Patents","tags":["google"],"x-payment-info":{"price":{"amount":"0.000990","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/google.scholar":{"post":{"description":"Search Google Scholar for academic papers with title, authors, citation count, and PDF link.\n\n**Price:** \\$0.99 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"google_scholar","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"query":"attention is all you need"},"schema":{"additionalProperties":false,"example":{"query":"attention is all you need"},"properties":{"query":{"description":"The Google Scholar search query.","type":"string"}},"required":["query"],"title":"Google Scholar input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Result payload, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"query":{"description":"The query that was searched.","type":"string"},"results":{"description":"Academic paper result records.","items":{"properties":{"citedBy":{"description":"Number of citations reported by Google Scholar.","type":"integer"},"id":{"description":"Result identifier.","type":"string"},"link":{"description":"URL to the paper. Populated whenever the provider has data for the entity.","format":"uri","type":"string","x-anyapi-must-populate":true},"pdfUrl":{"description":"URL to an available PDF.","format":"uri","type":"string"},"publicationInfo":{"description":"Authors, venue, and publication year.","type":"string"},"snippet":{"description":"Short paper description snippet.","type":"string"},"title":{"description":"Paper title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"year":{"description":"Publication year.","type":"integer"}},"required":["title","link"],"type":"object"},"type":"array"}},"required":["query","results"],"type":"object"}]},"found":{"description":"True when at least one scholar result was returned.","type":"boolean"}},"required":["found","data"],"title":"Google Scholar output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Google Scholar","tags":["google"],"x-payment-info":{"price":{"amount":"0.000990","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/google.search":{"post":{"description":"Run a Google web search and get the organic results (title, link, snippet, position) as clean JSON.\n\n**Price:** \\$0.99 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"google_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"gl":"us","hl":"en","limit":10,"query":"best coffee maker"},"schema":{"additionalProperties":false,"example":{"gl":"us","hl":"en","limit":10,"query":"best coffee maker"},"properties":{"autocorrect":{"description":"Toggle Google spelling autocorrect (default true). Set false to search the exact query without correction.","type":"boolean"},"gl":{"default":"us","description":"Two-letter country code for result localization (e.g. us, gb, de).","type":"string"},"hl":{"default":"en","description":"Two-letter interface and results language code (e.g. en, es, de).","type":"string"},"limit":{"default":10,"description":"Maximum number of organic results to return (1-100, default 10). Google may return fewer if the query is narrow. Price is flat per request.","maximum":100,"minimum":1,"type":"integer"},"location":{"description":"Fine-grained location for result localization, given as a canonical Google location string (e.g. 'New York, United States', 'London, United Kingdom'). More specific than the country-level gl.","type":"string"},"query":{"description":"The Google search query.","type":"string"},"timeframe":{"description":"Restrict results to a recent time window: 1h, 1d, 7d, 1y, or all. Default all (no time restriction).","type":"string"}},"required":["query"],"title":"Google search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"query":{"type":"string"},"results":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"link":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"position":{"type":"integer"},"snippet":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["title","link","snippet","position"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["query","results"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Google search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Google Search","tags":["google"],"x-payment-info":{"price":{"amount":"0.000990","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/google.videos":{"post":{"description":"Search Google for video results (YouTube and others) with title, link, thumbnail, and source.\n\n**Price:** \\$0.99 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"google_videos","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"gl":"us","hl":"en","query":"lofi hip hop"},"schema":{"additionalProperties":false,"example":{"gl":"us","hl":"en","query":"lofi hip hop"},"properties":{"autocorrect":{"description":"Toggle Google spelling autocorrect (default true). Set false to search the exact query without correction.","type":"boolean"},"gl":{"default":"us","description":"Two-letter country code for result localization (e.g. us, gb, de).","type":"string"},"hl":{"default":"en","description":"Two-letter interface and results language code (e.g. en, es, de).","type":"string"},"location":{"description":"Fine-grained location for result localization, given as a canonical Google location string (e.g. 'New York, United States', 'London, United Kingdom'). More specific than the country-level gl.","type":"string"},"query":{"description":"The video search query.","type":"string"},"timeframe":{"description":"Restrict results to a recent time window: 1h, 1d, 7d, 1y, or all. Default all (no time restriction).","type":"string"}},"required":["query"],"title":"Google Videos input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Result payload, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"query":{"description":"The query that was searched.","type":"string"},"results":{"description":"Video result records. Populated whenever the provider has data for the entity.","items":{"properties":{"image":{"description":"Thumbnail image URL for the video.","format":"uri","type":"string"},"link":{"description":"URL to the video. Populated whenever the provider has data for the entity.","format":"uri","type":"string","x-anyapi-must-populate":true},"position":{"description":"1-based rank in the result list.","type":"integer"},"snippet":{"description":"Short description snippet.","type":"string"},"source":{"description":"Host platform (e.g. YouTube, Vimeo).","type":"string"},"title":{"description":"Video title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["title","link"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["query","results"],"type":"object"}]},"found":{"description":"True when at least one video result was returned.","type":"boolean"}},"required":["found","data"],"title":"Google Videos output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Google Videos","tags":["google"],"x-payment-info":{"price":{"amount":"0.000990","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/google_ads.ad_details":{"post":{"description":"Look up a single Google Ads Transparency Center creative by URL and get its format, run dates, impression range, regions, and creative variations as clean JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"google_ads_ad_details","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://adstransparency.google.com/advertiser/AR01614014350098432001/creative/CR10449491775734153217"},"schema":{"additionalProperties":false,"example":{"url":"https://adstransparency.google.com/advertiser/AR01614014350098432001/creative/CR10449491775734153217"},"properties":{"url":{"description":"Google Ads Transparency Center creative URL (e.g. \"https://adstransparency.google.com/advertiser/AR.../creative/CR...\").","type":"string"}},"required":["url"],"title":"Google Ads ad details input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"advertiserId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"creativeId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"firstShown":{"description":"ISO 8601 date.","type":"string"},"format":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"impressionsMax":{"type":"integer"},"impressionsMin":{"type":"integer"},"lastShown":{"description":"ISO 8601 date.","type":"string"},"variations":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"allText":{"type":"string"},"description":{"type":"string"},"destinationUrl":{"type":"string"},"headline":{"type":"string"},"imageUrl":{"type":"string"}},"required":["headline","description","allText","destinationUrl","imageUrl"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["advertiserId","creativeId","format","firstShown","lastShown","impressionsMin","impressionsMax","variations"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Google Ads ad details output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Google Ads Ad Details","tags":["google-ads"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/google_ads.advertiser_search":{"post":{"description":"Search the Google Ads Transparency Center for advertisers by keyword and get matching advertiser IDs, regions, and estimated ad counts as clean JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"google_ads_advertiser_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"query":"lululemon"},"schema":{"additionalProperties":false,"example":{"query":"lululemon"},"properties":{"query":{"description":"Advertiser name or keyword to search for (e.g. \"lululemon\").","type":"string"},"region":{"description":"Two-letter country code to scope results (e.g. \"AU\", \"CA\"). Defaults to US.","type":"string"}},"required":["query"],"title":"Google Ads advertiser search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"advertisers":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"adsEstimate":{"description":"Estimated number of ads for this advertiser/region.","type":"integer"},"advertiserId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"name":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"region":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["name","advertiserId","region","adsEstimate"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["advertisers"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Google Ads advertiser search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Google Ads Advertiser Search","tags":["google-ads"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/google_ads.company_ads":{"post":{"description":"List the ads a company is running from the Google Ads Transparency Center by domain or advertiser ID (creative ID, format, ad URL, and first/last shown dates) with cursor pagination.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"google_ads_company_ads","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"domain":"lululemon.com"},"schema":{"additionalProperties":false,"example":{"domain":"lululemon.com"},"properties":{"advertiserId":{"description":"Advertiser ID. Provide either domain or advertiserId.","type":"string"},"cursor":{"description":"Opaque pagination cursor from a previous response's nextCursor.","type":"string"},"domain":{"description":"Company domain (e.g. \"lululemon.com\"). Provide either domain or advertiserId.","type":"string"},"endDate":{"description":"Only return ads first shown on or before this date, format YYYY-MM-DD (e.g. 2024-12-31).","type":"string"},"format":{"description":"Ad format filter.","enum":["text","image","video"],"type":"string"},"platform":{"description":"Platform filter.","enum":["google_maps","google_play","google_search","google_shopping","youtube"],"type":"string"},"region":{"description":"Two-letter country code to scope results (e.g. \"US\", \"AU\").","type":"string"},"startDate":{"description":"Only return ads first shown on or after this date, format YYYY-MM-DD (e.g. 2024-01-01).","type":"string"},"topic":{"description":"Search topic. \"political\" requires a region.","enum":["all","political"],"type":"string"}},"title":"Google Ads company ads input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"ads":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"adUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"advertiserId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"advertiserName":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"creativeId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"firstShown":{"description":"ISO 8601 date.","type":"string"},"format":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"imageUrl":{"type":"string"},"lastShown":{"description":"ISO 8601 date.","type":"string"}},"required":["advertiserId","creativeId","advertiserName","format","adUrl","imageUrl","firstShown","lastShown"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"adsEstimate":{"description":"Estimated total number of ads.","type":"integer"},"nextCursor":{"type":"string"}},"required":["nextCursor","adsEstimate","ads"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Google Ads company ads output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Google Ads Company Ads","tags":["google-ads"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/google_ads.search":{"post":{"description":"Pull the ads an advertiser is currently running from the Google Ads Transparency Center (creative details, formats, and run dates) as clean JSON.\n\n**Price:** billed per result - \\$0.05 per 1,000 requests base + \\$1.30 per 1,000 results, capped at \\$26.05 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"google_ads_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"url":"https://adstransparency.google.com/?region=US\u0026domain=nike.com"},"schema":{"additionalProperties":false,"example":{"limit":3,"url":"https://adstransparency.google.com/?region=US\u0026domain=nike.com"},"properties":{"limit":{"description":"Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.","maximum":20,"minimum":1,"type":"integer"},"url":{"description":"A Google Ads Transparency Center URL for a selected advertiser or domain (e.g. https://adstransparency.google.com/advertiser/AR01614014350098432001?region=US).","type":"string"}},"required":["url"],"title":"Google Ads Transparency search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The result wrapper, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Ad records from the Transparency Center: advertiser, ad format, creative details, preview URL, and first/last shown dates. Populated whenever the provider has data for the entity.","items":{"properties":{"advertiser":{"description":"Advertiser display name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"advertiserId":{"description":"Google Ads advertiser identifier.","type":"string"},"firstShownUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. When the ad was first shown.","type":"number"},"format":{"description":"Ad format, e.g. TEXT, IMAGE, VIDEO.","type":"string"},"id":{"description":"Google Ads creative identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"lastShownUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. When the ad was last shown.","type":"number"},"numServedDays":{"description":"Number of days the ad has been served.","type":"integer"},"previewUrl":{"description":"URL to a rendered preview of the creative.","type":"string"},"url":{"description":"Ads Transparency Center URL for the creative. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"variations":{"description":"Creative variations for the ad, each with image, headline, and body text where present.","items":{"properties":{"headline":{"description":"Creative headline text.","type":"string"},"imageUrl":{"description":"Creative image URL.","type":"string"},"text":{"description":"Creative body/description text.","type":"string"}},"type":"object"},"type":"array"}},"required":["id","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when at least one ad record was returned.","type":"boolean"}},"required":["found","data"],"title":"Google Ads Transparency search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Google Ads Transparency","tags":["google-ads"],"x-payment-info":{"price":{"currency":"USD","max":"0.026050","min":"0.000050","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/google_finance.quote":{"post":{"description":"Fetch a live quote for any stock, index, ETF, mutual fund, currency pair, or crypto symbol: name, current price, the absolute and percent change on the day, quote currency, exchange and market state, plus intraday and reference figures (open, day high/low, previous close, volume, market cap, and the 52-week range).\n\n**Price:** billed per result - \\$0.50 per 1,000 requests base + \\$1.50 per 1,000 results, capped at \\$2.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"google_finance_quote","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"symbol":"AAPL:NASDAQ"},"schema":{"additionalProperties":false,"example":{"symbol":"AAPL:NASDAQ"},"properties":{"symbol":{"description":"The symbol to quote. US stocks use a plain ticker (e.g. AAPL, TSLA); non-US stocks add a market suffix (e.g. VOW3.DE, BABA.HK, BARC.L); indices use a caret (e.g. ^GSPC, ^DJI); crypto and currencies use pair form (e.g. BTC-USD, EURUSD=X); mutual funds and futures use their symbol (e.g. VFIAX, ES=F). Common alternate forms are accepted and normalized (e.g. AAPL:NASDAQ, .DJI, BTC/USD). Exact symbols only, not a company-name search.","type":"string"}},"required":["symbol"],"title":"Google Finance quote input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Result payload, or null when the symbol did not resolve.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"The quote for the requested symbol: name, current price, day change (absolute and percent), quote currency, exchange and market state, plus intraday and reference figures. Up to one element (empty when the symbol did not resolve). Populated whenever the provider has data for the entity.","items":{"properties":{"asOfUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"ask":{"description":"Current ask price.","type":"number"},"assetType":{"description":"Instrument class (e.g. EQUITY, ETF, CRYPTOCURRENCY, CURRENCY, INDEX, MUTUALFUND, FUTURE).","type":"string"},"averageVolume":{"description":"Average daily trading volume.","type":"number"},"bid":{"description":"Current bid price.","type":"number"},"change":{"description":"Absolute price change on the day, in the quote currency.","type":"number"},"changePercent":{"description":"Percent price change on the day.","type":"number"},"currency":{"description":"ISO currency the quote is priced in (e.g. USD). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"dayHigh":{"description":"Highest price so far in the current session.","type":"number"},"dayLow":{"description":"Lowest price so far in the current session.","type":"number"},"exchange":{"description":"Exchange the instrument trades on (e.g. NasdaqGS). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"fiftyTwoWeekHigh":{"description":"Highest price over the trailing 52 weeks.","type":"number"},"fiftyTwoWeekLow":{"description":"Lowest price over the trailing 52 weeks.","type":"number"},"marketCap":{"description":"Market capitalization in the quote currency.","type":"number"},"marketState":{"description":"Current market state (e.g. REGULAR, PRE, POST, CLOSED).","type":"string"},"name":{"description":"Instrument or company name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"open":{"description":"Opening price for the current session.","type":"number"},"previousClose":{"description":"Previous session close price.","type":"number"},"price":{"description":"Current price in the quote currency.","type":"number"},"symbol":{"description":"Resolved ticker symbol for the quote. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"volume":{"description":"Traded volume for the current session.","type":"number"}},"required":["symbol","price"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when the symbol resolved to a quote.","type":"boolean"}},"required":["found","data"],"title":"Google Finance quote output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Google Finance Quote","tags":["google-finance"],"x-payment-info":{"price":{"currency":"USD","max":"0.002000","min":"0.000500","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/google_shopping.search":{"post":{"description":"Search Google Shopping by keyword and get up to 10 product offers (title, price, store, rating, and link), localized by country and language.\n\n**Price:** \\$16.25 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"google_shopping_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":10,"query":"airpods"},"schema":{"additionalProperties":false,"example":{"limit":10,"query":"airpods"},"properties":{"condition":{"description":"Only return products in this condition (e.g. \"USED\"); defaults to any condition.","enum":["ANY","NEW","USED","REFURBISHED"],"type":"string"},"country":{"default":"us","description":"ISO 3166-1 alpha-2 country code for localized results (e.g. \"us\", \"gb\", \"de\").","type":"string"},"language":{"default":"en","description":"ISO 639-1 language code for results (e.g. \"en\", \"es\", \"fr\").","type":"string"},"limit":{"description":"Maximum number of results to return (1-10, default 10). You are billed per result returned, so a lower limit costs less.","maximum":10,"minimum":1,"type":"integer"},"query":{"description":"Product name, brand, or keywords to search for (e.g. \"Nike running shoes\").","type":"string"},"sortBy":{"description":"Sort order for results (e.g. \"LOWEST_PRICE\"); defaults to relevance.","enum":["BEST_MATCH","LOWEST_PRICE","HIGHEST_PRICE","TOP_RATED"],"type":"string"}},"required":["query"],"title":"Google Shopping search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Search result wrapper, or null when nothing matched.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Matching Google Shopping product offers. Populated whenever the provider has data for the entity.","items":{"properties":{"brand":{"description":"Product brand; empty when not reported.","type":"string"},"currency":{"description":"Price currency code, e.g. \"USD\"; empty when not reported.","type":"string"},"discountPercent":{"description":"Discount label when on sale, e.g. \"23% OFF\"; empty otherwise.","type":"string"},"image":{"description":"Primary product image URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"listPrice":{"description":"Pre-discount list price as a numeric amount; 0 when not on sale or reported only as text.","type":"number"},"listPriceText":{"description":"Pre-discount list price as displayed, e.g. \"$130\"; empty when not applicable.","type":"string"},"price":{"description":"Current price as a numeric amount; 0 when the lane reports price only as text (see priceText).","type":"number"},"priceText":{"description":"Current price as displayed, e.g. \"$99.99\"; empty when the lane reports a numeric price instead.","type":"string"},"productId":{"description":"Provider product identifier.","type":"string"},"rating":{"description":"Average product rating, 0-5; 0 when unrated.","type":"number"},"reviewsCount":{"description":"Number of ratings / reviews; 0 when none reported.","type":"integer"},"seller":{"description":"Store / seller name offering the product, e.g. \"Target\".","type":"string"},"title":{"description":"Product title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Google Shopping product page URL (query retained; it encodes the product identity). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["title","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when the search returned at least one product offer.","type":"boolean"}},"required":["found","data"],"title":"Google Shopping search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Google Shopping Search","tags":["google-shopping"],"x-payment-info":{"price":{"currency":"USD","max":"0.058000","min":"0.016250","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/hackernews.profile":{"post":{"description":"Get a Hacker News user's public profile by username - karma, bio, and account details as clean JSON.\n\n**Price:** \\$1.50 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"hackernews_profile","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"pg"},"schema":{"additionalProperties":false,"example":{"handle":"pg"},"properties":{"handle":{"description":"Hacker News username, e.g. \"pg\".","type":"string"}},"required":["handle"],"title":"Hacker News profile input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"bio":{"type":"string"},"karma":{"type":"integer"},"username":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["username","bio","karma"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Hacker News profile output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Hacker News Profile","tags":["hackernews"],"x-payment-info":{"price":{"amount":"0.001500","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/hackernews.search":{"post":{"description":"Search Hacker News by keyword - matching stories with title, link, author, points, and comment count as clean JSON.\n\n**Price:** \\$1.50 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"hackernews_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"query":"ai"},"schema":{"additionalProperties":false,"example":{"query":"ai"},"properties":{"query":{"description":"Search keyword, e.g. \"ai\".","type":"string"},"tags":{"description":"Optional result filter, e.g. \"story\" or \"comment\".","type":"string"}},"required":["query"],"title":"Hacker News search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Result payload, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"results":{"description":"Matching Hacker News stories. Populated whenever the provider has data for the entity.","items":{"properties":{"author":{"description":"Submitting user's username. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"comments":{"description":"Number of comments on the story.","type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"id":{"description":"Hacker News item id. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"points":{"description":"Story score (upvotes).","type":"integer"},"title":{"description":"Story title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Story link.","type":"string"}},"required":["id","title","url","author","points","comments","createdUtc"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["results"],"type":"object"}]},"found":{"description":"True when the search returned at least one story.","type":"boolean"}},"required":["found","data"],"title":"Hacker News search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Hacker News Search","tags":["hackernews"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.001500","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/hackernews.story":{"post":{"description":"Get a Hacker News story by id - title, link, author, points, and comment count as clean JSON.\n\n**Price:** \\$1.50 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"hackernews_story","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"id":"47340079"},"schema":{"additionalProperties":false,"example":{"id":"47340079"},"properties":{"id":{"description":"Hacker News story id, e.g. \"47340079\".","type":"string"}},"required":["id"],"title":"Hacker News story input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Story payload, or null when the id did not resolve.","oneOf":[{"type":"null"},{"properties":{"author":{"description":"Submitting user's username. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"comments":{"description":"Number of comments on the story.","type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"points":{"description":"Story score (upvotes).","type":"integer"},"title":{"description":"Story title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Story link.","type":"string"}},"required":["title","url","author","points","comments","createdUtc"],"type":"object"}]},"found":{"description":"True when the story id resolved.","type":"boolean"}},"required":["found","data"],"title":"Hacker News story output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Hacker News Story","tags":["hackernews"],"x-payment-info":{"price":{"amount":"0.001500","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/hackernews.story_comments":{"post":{"description":"List the comments on a Hacker News story by id - text, author, and timestamp as clean JSON.\n\n**Price:** \\$1.50 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"hackernews_story_comments","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"id":"47340079"},"schema":{"additionalProperties":false,"example":{"id":"47340079"},"properties":{"id":{"description":"Hacker News story id, e.g. \"47340079\".","type":"string"}},"required":["id"],"title":"Hacker News story comments input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Result payload, or null when the id did not resolve.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"comments":{"description":"Comments on the story. Populated whenever the provider has data for the entity.","items":{"properties":{"author":{"description":"Commenting user's username. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"id":{"description":"Hacker News comment id. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"parentId":{"description":"Id of the parent item (story or comment) this reply belongs to.","type":"string"},"text":{"description":"Comment body text.","type":"string"}},"required":["id","parentId","author","text","createdUtc"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["comments"],"type":"object"}]},"found":{"description":"True when the story id resolved and comments were returned.","type":"boolean"}},"required":["found","data"],"title":"Hacker News story comments output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Hacker News Story Comments","tags":["hackernews"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.001500","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/indeed.jobs":{"post":{"description":"Search Indeed job listings by keyword, location, and country, with up to 20 normalized job records per request.\n\n**Price:** billed per result - \\$0.80 per 1,000 requests base + \\$0.08 per 1,000 results, capped at \\$2.40 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"indeed_jobs","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"location":"Austin, TX","query":"data analyst"},"schema":{"additionalProperties":false,"example":{"limit":3,"location":"Austin, TX","query":"data analyst"},"properties":{"country":{"default":"us","description":"Two-letter country site code (e.g. us, uk, de).","type":"string"},"limit":{"description":"Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.","maximum":20,"minimum":1,"type":"integer"},"location":{"description":"City, state, zip, or 'remote'.","type":"string"},"postedLimit":{"description":"Only return jobs posted within this window: 24h (past day) or week (past 7 days). Omit for all dates.","enum":["24h","week"],"type":"string"},"query":{"description":"Job search keywords (e.g. software engineer).","type":"string"}},"required":["query"],"title":"Indeed Jobs input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Job listing records: title, employer, location, salary when available, job type, posting date, and description. Populated whenever the provider has data for the entity.","items":{"properties":{"city":{"type":"string"},"company":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"country":{"type":"string"},"datePublished":{"description":"ISO 8601 publish date.","type":"string"},"description":{"description":"Plain-text job description.","type":"string"},"expired":{"type":"boolean"},"jobId":{"description":"Indeed job key. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"postalCode":{"type":"string"},"salaryCurrency":{"type":"string"},"salaryMax":{"type":"number"},"salaryMin":{"type":"number"},"salaryUnit":{"description":"Salary period, e.g. YEAR or HOUR.","type":"string"},"state":{"type":"string"},"title":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Indeed job posting URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["jobId","title","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Indeed Jobs output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Indeed Jobs","tags":["indeed"],"x-payment-info":{"price":{"currency":"USD","max":"0.002400","min":"0.000800","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/instagram.audio_reels":{"post":{"description":"List Instagram reels that use a given audio track by audio id.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"instagram_audio_reels","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"audioId":"1392969992841787"},"schema":{"additionalProperties":false,"example":{"audioId":"1392969992841787"},"properties":{"audioId":{"description":"Audio identifier from the Instagram audio page URL.","type":"string"},"cursor":{"description":"Pagination cursor returned by a previous response.","type":"string"}},"required":["audioId"],"title":"Instagram Reels by Audio input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"hasMore":{"type":"boolean"},"nextCursor":{"type":"string"},"reels":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"code":{"type":"string"},"comments":{"type":"integer"},"handle":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"type":"integer"},"plays":{"type":"integer"}},"required":["id","code","likes","comments","plays","handle"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["nextCursor","hasMore","reels"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Instagram Reels by Audio output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Instagram Reels by Audio","tags":["instagram"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/instagram.basic_profile":{"post":{"description":"Fetch an Instagram account's core public profile fields (followers, posts, bio, verification) by user id.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"instagram_basic_profile","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"userId":"314216"},"schema":{"additionalProperties":false,"example":{"userId":"314216"},"properties":{"userId":{"description":"Instagram numeric user id.","type":"string"}},"required":["userId"],"title":"Instagram Basic Profile input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"avatarUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"bio":{"type":"string"},"displayName":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"externalUrl":{"type":"string"},"followers":{"type":"integer"},"following":{"type":"integer"},"handle":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"private":{"type":"boolean"},"userId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"verified":{"type":"boolean"}},"required":["userId","handle","displayName","followers","following","bio","verified","private","externalUrl","avatarUrl"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Instagram Basic Profile output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Instagram Basic Profile","tags":["instagram"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/instagram.embed":{"post":{"description":"Fetch the public embed HTML for an Instagram profile by handle.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"instagram_embed","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"nasa"},"schema":{"additionalProperties":false,"example":{"handle":"nasa"},"properties":{"handle":{"description":"Instagram username without the leading @.","type":"string"}},"required":["handle"],"title":"Instagram Profile Embed input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"html":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["html"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Instagram Profile Embed output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Instagram Profile Embed","tags":["instagram"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/instagram.followers":{"post":{"description":"List the followers of any public Instagram account by username: follower usernames, names, and profile details.\n\n**Price:** \\$16.25 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"instagram_followers","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":50,"username":"nasa"},"schema":{"additionalProperties":false,"example":{"limit":50,"username":"nasa"},"properties":{"cursor":{"description":"Opaque pagination cursor from a previous response's nextCursor. Omit for the first page; pass it to fetch the next page of followers.","type":"string"},"limit":{"description":"How many followers you want (50-1000). By default results come back in cheap pages of up to ~50: follow the response's nextCursor for more. With requireSinglePage true, up to this many are returned in one (pricier) call.","maximum":1000,"minimum":50,"type":"integer"},"requireSinglePage":{"description":"Set true to get up to limit followers in a single response instead of cheap pages, served by a bulk provider at a higher price.","type":"boolean"},"username":{"description":"The Instagram username, user ID, or profile URL whose followers to list (e.g. natgeo).","type":"string"}},"required":["username"],"title":"Instagram followers input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Follower records for the target account. Populated whenever the provider has data for the entity.","items":{"properties":{"handle":{"description":"The follower's username, without the @ prefix. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"The follower's numeric Instagram user ID, as a string. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"URL of the follower's profile picture, with tracking query params stripped. Empty when the upstream omits it.","type":"string"},"name":{"description":"The follower's display name. Empty when the account has none.","type":"string"},"private":{"description":"Whether the follower's account is private.","type":"boolean"},"url":{"description":"Canonical URL of the follower's profile, with tracking query params stripped. Empty when the lane does not return it.","type":"string"},"verified":{"description":"Whether the follower's account is verified.","type":"boolean"}},"required":["id","handle"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"nextCursor":{"description":"Opaque cursor for the next page of followers, or null/empty when this lane has no more. Pass it back as cursor to continue.","type":["string","null"]}},"required":["items"],"type":"object"}]},"found":{"description":"Whether the account was found and returned follower records.","type":"boolean"}},"required":["found","data"],"title":"Instagram followers output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Instagram Followers","tags":["instagram"],"x-payment-info":{"price":{"currency":"USD","max":"1.300000","min":"0.016250","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/instagram.following":{"post":{"description":"List the accounts a public Instagram user follows: usernames, names, and profile details.\n\n**Price:** \\$16.25 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"instagram_following","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":50,"username":"nasa"},"schema":{"additionalProperties":false,"example":{"limit":50,"username":"nasa"},"properties":{"cursor":{"description":"Opaque pagination cursor from a previous response's nextCursor. Omit for the first page; pass it to fetch the next page.","type":"string"},"limit":{"description":"How many accounts you want (50-1000). By default results come back in cheap pages of up to ~50: follow the response's nextCursor for more. With requireSinglePage true, up to this many are returned in one (pricier) call.","maximum":1000,"minimum":50,"type":"integer"},"requireSinglePage":{"description":"Set true to get up to limit accounts in a single response instead of cheap pages, served by a bulk provider at a higher price.","type":"boolean"},"username":{"description":"The Instagram username, user ID, or profile URL whose following list to fetch (e.g. natgeo).","type":"string"}},"required":["username"],"title":"Instagram following input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Records for the accounts the target user follows. Populated whenever the provider has data for the entity.","items":{"properties":{"handle":{"description":"The followed account's username, without the @ prefix. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"The followed account's numeric Instagram user ID, as a string. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"URL of the followed account's profile picture, with tracking query params stripped. Empty when the upstream omits it.","type":"string"},"name":{"description":"The followed account's display name. Empty when the account has none.","type":"string"},"private":{"description":"Whether the followed account is private.","type":"boolean"},"url":{"description":"Canonical URL of the followed account's profile, with tracking query params stripped. Empty when the lane does not return it.","type":"string"},"verified":{"description":"Whether the followed account is verified.","type":"boolean"}},"required":["id","handle"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"nextCursor":{"description":"Opaque cursor for the next page of results, or null/empty when this lane has no more. Pass it back as cursor to continue.","type":["string","null"]}},"required":["items"],"type":"object"}]},"found":{"description":"Whether the account was found and returned following records.","type":"boolean"}},"required":["found","data"],"title":"Instagram following output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Instagram Following","tags":["instagram"],"x-payment-info":{"price":{"currency":"USD","max":"1.300000","min":"0.016250","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/instagram.hashtag_analytics":{"post":{"description":"Get analytics for any Instagram hashtag (total post count, related hashtags, and usage signals).\n\n**Price:** billed per result - \\$1.00 per 1,000 requests base + \\$1.70 per 1,000 results, capped at \\$35.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"instagram_hashtag_analytics","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"hashtag":"travel","limit":5},"schema":{"additionalProperties":false,"example":{"hashtag":"travel","limit":5},"properties":{"hashtag":{"description":"The Instagram hashtag to analyze, with or without the # symbol (e.g. streetphotography).","type":"string"},"limit":{"description":"Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.","maximum":20,"minimum":1,"type":"integer"}},"required":["hashtag"],"title":"Instagram hashtag analytics input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Hashtag analytics records: hashtag name, total post count, and related hashtag suggestions. Populated whenever the provider has data for the entity.","items":{"properties":{"difficulty":{"type":"string"},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"name":{"description":"Hashtag (without #). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"postsCount":{"description":"Total posts using the hashtag.","type":"integer"},"postsFormatted":{"description":"Human-formatted post count (e.g. 793.54 M). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["name","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Instagram hashtag analytics output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Instagram Hashtag Analytics","tags":["instagram"],"x-payment-info":{"price":{"currency":"USD","max":"0.035000","min":"0.001000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/instagram.highlight_detail":{"post":{"description":"Fetch the details and media items of a single Instagram story highlight by id.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"instagram_highlight_detail","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"id":"18201653992314974"},"schema":{"additionalProperties":false,"example":{"id":"18201653992314974"},"properties":{"id":{"description":"The id of the highlight to retrieve details for.","type":"string"}},"required":["id"],"title":"Instagram Highlight Detail input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The highlight record, or null when nothing was found.","oneOf":[{"type":"null"},{"properties":{"coverUrl":{"description":"URL of the highlight cover image. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"id":{"description":"Highlight identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"mediaCount":{"description":"Number of media items in the highlight.","type":"integer"},"ownerHandle":{"description":"Handle of the account that owns the highlight. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Highlight title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","title","mediaCount","createdUtc","ownerHandle","coverUrl"],"type":"object"}]},"found":{"description":"True when the highlight was found; false when the lookup returned nothing.","type":"boolean"}},"required":["found","data"],"title":"Instagram Highlight Detail output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Instagram Highlight Detail","tags":["instagram"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/instagram.media_transcript":{"post":{"description":"Get the spoken-audio transcript text for an Instagram post or reel by URL.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"instagram_media_transcript","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.instagram.com/reel/DHsD6HGqJhp/"},"schema":{"additionalProperties":false,"example":{"url":"https://www.instagram.com/reel/DHsD6HGqJhp/"},"properties":{"url":{"description":"Instagram post or reel URL.","type":"string"}},"required":["url"],"title":"Instagram Media Transcript input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"transcripts":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"shortcode":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"text":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","shortcode","text"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["transcripts"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Instagram Media Transcript output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Instagram Media Transcript","tags":["instagram"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/instagram.post":{"post":{"description":"Fetch a single Instagram post or reel by URL (media URLs, like count, owner, type) as normalized JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"instagram_post","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.instagram.com/reel/DWzrfE2kaY8/"},"schema":{"additionalProperties":false,"example":{"url":"https://www.instagram.com/reel/DWzrfE2kaY8/"},"properties":{"url":{"description":"Full Instagram post or reel URL.","type":"string"}},"required":["url"],"title":"Instagram post input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"displayUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"type":"integer"},"owner":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"shortcode":{"type":"string"},"type":{"type":"string"},"videoUrl":{"type":"string"}},"required":["id","shortcode","type","owner","likes","displayUrl","videoUrl"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Instagram post output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Instagram Post","tags":["instagram"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/instagram.post_comments":{"post":{"description":"List the comments on an Instagram post or reel by URL with cursor pagination (text, author, likes).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"instagram_post_comments","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.instagram.com/reel/DWzrfE2kaY8/"},"schema":{"additionalProperties":false,"example":{"url":"https://www.instagram.com/reel/DWzrfE2kaY8/"},"properties":{"cursor":{"description":"Pagination cursor from a previous response's nextCursor.","type":"string"},"url":{"description":"Full Instagram post or reel URL.","type":"string"}},"required":["url"],"title":"Instagram post comments input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"comments":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"author":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"type":"integer"},"text":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"verified":{"type":"boolean"}},"required":["id","text","author","verified","likes","createdUtc"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["comments"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Instagram post comments output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Instagram Post Comments","tags":["instagram"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/instagram.profile":{"post":{"description":"Fetch an Instagram account's public profile (followers, posts, bio, verification) by handle.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 3 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"instagram_profile","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"nasa"},"schema":{"additionalProperties":false,"example":{"handle":"nasa"},"properties":{"handle":{"description":"Instagram username without the leading @.","type":"string"}},"required":["handle"],"title":"Instagram profile input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"avatarUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"bio":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"displayName":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"followers":{"type":"integer"},"following":{"type":"integer"},"handle":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"posts":{"type":"integer"},"verified":{"type":"boolean"}},"required":["handle","displayName","followers","following","posts","bio","verified","avatarUrl"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Instagram profile output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Instagram Profile","tags":["instagram"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/instagram.reel_transcript":{"post":{"description":"Turn any public Instagram reel or video post into a full speech transcript, with optional word-level timestamps.\n\n**Price:** billed per result - \\$5.00 per 1,000 requests base + \\$20.00 per 1,000 results, capped at \\$25.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"instagram_reel_transcript","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.instagram.com/reel/DWzrfE2kaY8/","wordTimestamps":false},"schema":{"additionalProperties":false,"example":{"url":"https://www.instagram.com/reel/DWzrfE2kaY8/","wordTimestamps":false},"properties":{"url":{"description":"The URL of a public Instagram reel or video post with spoken audio (e.g. https://www.instagram.com/reel/C8yKXdRxKqK/).","type":"string"},"wordTimestamps":{"default":false,"description":"Set true to include a precise timestamp for every word in the transcript (e.g. true).","type":"boolean"}},"required":["url"],"title":"Instagram reel transcript input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Transcript record for the requested reel (one item), with the full transcript text, timed segments, and source video metadata. Populated whenever the provider has data for the entity.","items":{"properties":{"caption":{"description":"The reel's caption text. Empty when the reel has no caption.","type":"string"},"commentCount":{"description":"Number of comments on the reel.","type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"durationSeconds":{"description":"Video duration in seconds.","type":"number"},"id":{"description":"The reel's numeric Instagram media ID, as a string. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"language":{"description":"Detected spoken language (ISO 639-1 code, e.g. \"en\"). Empty when the upstream omits it.","type":"string"},"likeCount":{"description":"Number of likes on the reel.","type":"integer"},"ownerUsername":{"description":"Username of the reel's owner, without the @ prefix. Empty when the upstream omits it.","type":"string"},"segments":{"description":"Time-aligned transcript segments, each with its text and start/end offsets in seconds.","items":{"properties":{"end":{"description":"Segment end offset in seconds from the start of the video.","type":"number"},"start":{"description":"Segment start offset in seconds from the start of the video.","type":"number"},"text":{"description":"The segment's transcribed text.","type":"string"}},"type":"object"},"type":"array"},"text":{"description":"The full speech transcript. Empty when the reel has no detectable spoken audio. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Canonical URL of the reel, with tracking query params stripped. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"viewCount":{"description":"Number of video views.","type":"integer"}},"required":["id","url","text"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"Whether the reel was found and transcribed.","type":"boolean"}},"required":["found","data"],"title":"Instagram reel transcript output","type":"object","x-anyapi-heavy":true},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Instagram Reel Transcript","tags":["instagram"],"x-payment-info":{"price":{"currency":"USD","max":"0.025000","min":"0.005000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/instagram.reels_search":{"post":{"description":"Search Instagram Reels by keyword and get matching reels (caption, views, likes, creator, and duration). Results are relevance-ranked, not chronological. Paging tops out around 110 reels per query (11 pages of 10).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"instagram_reels_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"query":"travel"},"schema":{"additionalProperties":false,"example":{"query":"travel"},"properties":{"datePosted":{"description":"Recency hint, not a hard filter. Reel discovery runs on top of Google search, so this window narrows Google's index by when it discovered or last crawled the reel, which is not the same as when the reel was published to Instagram. Returned reels can have a createdUtc outside the requested window, and narrow windows such as last-hour often return older reels or no results. Check createdUtc yourself if you need exact publication-time precision.","enum":["last-hour","last-day","last-week","last-month","last-year"],"type":"string"},"page":{"default":1,"description":"1-based results page.","minimum":1,"type":"integer"},"query":{"description":"Search keyword (e.g. \"crossfit\").","type":"string"}},"required":["query"],"title":"Instagram reels search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Wrapper holding the reels array, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"reels":{"description":"Reels matching the search. Populated whenever the provider has data for the entity.","items":{"properties":{"caption":{"description":"Reel caption text. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"comments":{"description":"Number of comments on the reel.","type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"durationSeconds":{"description":"Reel duration in seconds.","type":"number"},"followers":{"description":"Follower count of the posting account.","type":"integer"},"likes":{"description":"Number of likes on the reel.","type":"integer"},"paidPartnership":{"description":"True when the reel is a paid partnership.","type":"boolean"},"plays":{"description":"Number of plays of the reel.","type":"integer"},"shortcode":{"description":"Instagram media shortcode. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"thumbnail":{"description":"URL of the reel thumbnail image. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Canonical URL of the reel. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"username":{"description":"Username of the account that posted the reel. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"verified":{"description":"True when the posting account is verified.","type":"boolean"},"views":{"description":"Number of views on the reel.","type":"integer"}},"required":["shortcode","url","caption","thumbnail","views","plays","likes","comments","durationSeconds","createdUtc","username","followers","verified","paidPartnership"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["reels"],"type":"object"}]},"found":{"description":"True when matching reels were found; false when the search returned nothing.","type":"boolean"}},"required":["found","data"],"title":"Instagram reels search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Instagram Reels Search","tags":["instagram"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/instagram.search":{"post":{"description":"Search Instagram for users, hashtags, or places by keyword and get matching results with names, counts, and links.\n\n**Price:** \\$3.25 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"instagram_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"query":"nasa"},"schema":{"additionalProperties":false,"example":{"query":"nasa"},"properties":{"limit":{"description":"Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.","maximum":20,"minimum":1,"type":"integer"},"query":{"description":"Keyword to search Instagram for; one or more words without special punctuation (e.g. coffee roastery).","type":"string"},"type":{"default":"user","description":"What to search for: user profiles, hashtags, or places (e.g. hashtag).","enum":["user","hashtag","place"],"type":"string"}},"required":["query"],"title":"Instagram search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Matching Instagram profile records for the query. Populated whenever the provider has data for the entity.","items":{"properties":{"bio":{"description":"The account's bio text. Empty when the account has none.","type":"string"},"followers":{"description":"The account's follower count. May be 0 when the lane does not return it in search results.","type":"integer"},"following":{"description":"The number of accounts the account follows. May be 0 when the lane does not return it in search results.","type":"integer"},"handle":{"description":"The account's username, without the @ prefix. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"The account's numeric Instagram user ID, as a string. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"URL of the account's profile picture, with tracking query params stripped. Empty when the upstream omits it.","type":"string"},"name":{"description":"The account's display name. Empty when the account has none.","type":"string"},"postsCount":{"description":"The account's post count. May be 0 when the lane does not return it in search results.","type":"integer"},"url":{"description":"Canonical URL of the account's profile, with tracking query params stripped. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"verified":{"description":"Whether the account is verified.","type":"boolean"}},"required":["id","handle","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"Whether any matching profiles were returned for the query.","type":"boolean"}},"required":["found","data"],"title":"Instagram search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Instagram Search","tags":["instagram"],"x-payment-info":{"price":{"currency":"USD","max":"0.038000","min":"0.003250","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/instagram.search_hashtag":{"post":{"description":"Search Instagram posts under a hashtag (caption, type, media URL). Results are relevance-ranked by Instagram, not date-ordered, so a page can mix recent and older posts.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"instagram_search_hashtag","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"hashtag":"travel"},"schema":{"additionalProperties":false,"example":{"hashtag":"travel"},"properties":{"cursor":{"description":"Pagination cursor from a previous response.","type":"string"},"datePosted":{"description":"Restrict results to posts published within this window.","enum":["last-hour","last-day","last-week","last-month","last-year"],"type":"string"},"hashtag":{"description":"Hashtag to search, without the leading #.","type":"string"},"mediaType":{"description":"Filter by media type (e.g. all, photo, video, reel).","type":"string"}},"required":["hashtag"],"title":"Instagram hashtag search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"posts":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"caption":{"type":"string"},"displayUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"shortcode":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"type":{"type":"string"},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","shortcode","type","url","caption","displayUrl"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["posts"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Instagram hashtag search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Instagram Hashtag Search","tags":["instagram"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/instagram.search_profiles":{"post":{"description":"Search public Instagram profiles by a bio or caption keyword.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"instagram_search_profiles","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"query":"coffee roaster"},"schema":{"additionalProperties":false,"example":{"query":"coffee roaster"},"properties":{"cursor":{"description":"Pagination cursor returned by a previous response.","type":"string"},"query":{"description":"Bio or caption keyword/phrase to search for.","type":"string"}},"required":["query"],"title":"Instagram Profile Search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"nextCursor":{"type":"string"},"profiles":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"avatarUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"bio":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"displayName":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"followers":{"type":"integer"},"following":{"type":"integer"},"handle":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"posts":{"type":"integer"},"private":{"type":"boolean"},"verified":{"type":"boolean"}},"required":["id","handle","displayName","bio","followers","following","posts","verified","private","avatarUrl"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["nextCursor","profiles"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Instagram Profile Search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Instagram Profile Search","tags":["instagram"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/instagram.stories_full":{"post":{"description":"Fetch a public Instagram account's currently live stories with media, type, dimensions, posting time, and 24-hour expiry by username.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"instagram_stories_full","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"username":"natgeo"},"schema":{"additionalProperties":false,"example":{"username":"natgeo"},"properties":{"username":{"description":"Instagram username or handle without the @.","minLength":1,"type":"string"}},"required":["username"],"title":"Instagram Stories (full) input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Wrapper holding the story items array, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Currently live story records for the requested account, with media, type, dimensions, posting time, and expiry. Populated whenever the provider has data for the entity.","items":{"properties":{"code":{"description":"Instagram media shortcode. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"expiresUtc":{"description":"Expiry UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"height":{"description":"Media pixel height. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"id":{"description":"Story identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"Direct URL to the story image (highest resolution). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"mediaType":{"description":"Media type: 1 = image, 2 = video. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"username":{"description":"Owner username. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"videoUrl":{"description":"Direct URL to the story video, when the story is a video. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"width":{"description":"Media pixel width. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true}},"required":["id"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when stories were found; false when the lookup returned nothing.","type":"boolean"}},"required":["found","data"],"title":"Instagram Stories (full) output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Instagram Stories (full)","tags":["instagram"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/instagram.stories_thin":{"post":{"description":"Fetch a public Instagram account's currently live stories - media URL, owner, and posting time - by username. Lightweight projection; for media type, dimensions, and the 24h expiry time use instagram.stories_full.\n\n**Price:** \\$16.25 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"instagram_stories_thin","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"username":"natgeo"},"schema":{"additionalProperties":false,"example":{"username":"natgeo"},"properties":{"username":{"description":"Instagram username/handle to fetch currently live stories for (without the @).","type":"string"}},"required":["username"],"title":"Instagram Stories (basic) input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Wrapper holding the story items array, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"The account's currently live stories, each with its media URL, owner, posting time, and permalink. Populated whenever the provider has data for the entity.","items":{"properties":{"createdUtc":{"description":"Posting time (Unix seconds).","type":"number"},"id":{"description":"Story identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"mediaUrl":{"description":"Direct URL to the story image or video. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"permalink":{"description":"Public link to the story. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"username":{"description":"Owner username. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when stories were found; false when the lookup returned nothing.","type":"boolean"}},"required":["found","data"],"title":"Instagram Stories (basic) output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Instagram Stories (basic)","tags":["instagram"],"x-payment-info":{"price":{"amount":"0.016250","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/instagram.trending_reels":{"post":{"description":"List currently trending Instagram reels.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"instagram_trending_reels","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{},"schema":{"additionalProperties":false,"example":{},"properties":{},"required":[],"title":"Instagram Trending Reels input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"reels":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"caption":{"type":"string"},"comments":{"type":"integer"},"handle":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"type":"integer"},"plays":{"type":"integer"},"shortcode":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","shortcode","url","caption","likes","comments","plays","handle"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["reels"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Instagram Trending Reels output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Instagram Trending Reels","tags":["instagram"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/instagram.user_highlights":{"post":{"description":"List an Instagram account's story highlight reels by handle.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"instagram_user_highlights","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"nasa"},"schema":{"additionalProperties":false,"example":{"handle":"nasa"},"properties":{"handle":{"description":"Instagram username without the leading @.","type":"string"},"userId":{"description":"Instagram numeric user id (optional, faster than handle).","type":"string"}},"required":["handle"],"title":"Instagram User Highlights input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"highlights":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"coverUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"ownerHandle":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","title","coverUrl","ownerHandle"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["highlights"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Instagram User Highlights output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Instagram User Highlights","tags":["instagram"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/instagram.user_posts":{"post":{"description":"List an Instagram account's recent posts (likes, comments, captions) by handle with cursor pagination.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 3 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"instagram_user_posts","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"nasa"},"schema":{"additionalProperties":false,"example":{"handle":"nasa"},"properties":{"cursor":{"description":"Pagination cursor from a previous response's nextCursor.","type":"string"},"handle":{"description":"Instagram username without the leading @.","type":"string"}},"required":["handle"],"title":"Instagram user posts input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"nextCursor":{"type":"string"},"posts":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"caption":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"comments":{"type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"type":"integer"},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","url","caption","likes","comments","createdUtc"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["posts","nextCursor"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Instagram user posts output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Instagram User Posts","tags":["instagram"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/instagram.user_reels":{"post":{"description":"List an Instagram account's reels by handle with cursor pagination (caption, plays, likes, comments).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"instagram_user_reels","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"nasa"},"schema":{"additionalProperties":false,"anyOf":[{"required":["handle"]},{"required":["userId"]}],"example":{"handle":"nasa"},"properties":{"cursor":{"description":"Pagination cursor (max_id) from a previous response's nextCursor.","type":"string"},"handle":{"description":"Instagram handle.","type":"string"},"userId":{"description":"Instagram user id (faster than handle when known).","type":"string"}},"title":"Instagram user reels input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"nextCursor":{"type":"string"},"reels":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"caption":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"comments":{"type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"type":"integer"},"shortcode":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"views":{"type":"integer"}},"required":["id","shortcode","caption","views","likes","comments","createdUtc"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["reels","nextCursor"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Instagram user reels output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Instagram User Reels","tags":["instagram"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/linkedin.ad":{"post":{"description":"Look up a single LinkedIn Ad Library ad by URL and get the advertiser, headline, creative text, format, CTA, targeting, run dates, and impressions as clean JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"linkedin_ad","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.linkedin.com/ad-library/detail/1487405616"},"schema":{"additionalProperties":false,"example":{"url":"https://www.linkedin.com/ad-library/detail/1487405616"},"properties":{"url":{"description":"LinkedIn Ad Library ad URL (e.g. \"https://www.linkedin.com/ad-library/detail/666281156\").","type":"string"}},"required":["url"],"title":"LinkedIn ad details input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"adType":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"advertiser":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"advertiserLinkedinPage":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"cta":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"description":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"destinationUrl":{"type":"string"},"endDate":{"description":"ISO 8601 date.","type":"string"},"headline":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"type":"string"},"image":{"type":"string"},"startDate":{"description":"ISO 8601 date.","type":"string"},"totalImpressions":{"type":"string"}},"required":["id","advertiser","advertiserLinkedinPage","headline","description","adType","cta","destinationUrl","image","startDate","endDate","totalImpressions"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"LinkedIn ad details output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"LinkedIn Ad Details","tags":["linkedin"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/linkedin.ads":{"post":{"description":"Search the LinkedIn Ad Library by search URL and list the matching ads (advertiser, creative text, format).\n\n**Price:** billed per result - \\$0.05 per 1,000 requests base + \\$1.50 per 1,000 results, capped at \\$30.05 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"linkedin_ads","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"url":"https://www.linkedin.com/company/stripe"},"schema":{"additionalProperties":false,"example":{"limit":3,"url":"https://www.linkedin.com/company/stripe"},"properties":{"limit":{"description":"Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.","maximum":20,"minimum":1,"type":"integer"},"url":{"description":"LinkedIn Ad Library search URL or a LinkedIn company URL (e.g. https://www.linkedin.com/ad-library/search?companyIds=1035).","type":"string"}},"required":["url"],"title":"LinkedIn ads library input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The results wrapper, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Ad records from the LinkedIn Ad Library. Populated whenever the provider has data for the entity.","items":{"description":"A LinkedIn ad: advertiser, creative text, format, and ad library URL.","properties":{"advertiser":{"description":"Advertiser (company) name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"advertiserLogo":{"description":"Advertiser logo image URL.","type":"string"},"format":{"description":"Ad format (e.g. SINGLE_IMAGE, VIDEO).","type":"string"},"id":{"description":"LinkedIn ad id. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"Ad creative image URL.","type":"string"},"text":{"description":"Ad creative body text.","type":"string"},"url":{"description":"Canonical LinkedIn Ad Library detail URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when at least one ad was returned.","type":"boolean"}},"required":["found","data"],"title":"LinkedIn ads library output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"LinkedIn Ads Library","tags":["linkedin"],"x-payment-info":{"price":{"currency":"USD","max":"0.030050","min":"0.000050","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/linkedin.ads_search":{"post":{"description":"Search the LinkedIn Ad Library by company or keyword and list matching ads (advertiser, headline, creative text, format, CTA, and run dates) with pagination.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"linkedin_ads_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"company":"microsoft"},"schema":{"additionalProperties":false,"example":{"company":"microsoft"},"properties":{"company":{"description":"Company name to search (e.g. \"microsoft\").","type":"string"},"companyId":{"description":"LinkedIn company identifier.","type":"string"},"countries":{"description":"Comma-separated two-letter country codes (e.g. \"US,CA,MX\").","type":"string"},"endDate":{"description":"Search end date in YYYY-MM-DD format.","type":"string"},"keyword":{"description":"Keyword term for the ad search.","type":"string"},"paginationToken":{"description":"Opaque pagination token from a previous response's nextCursor.","type":"string"},"startDate":{"description":"Search start date in YYYY-MM-DD format.","type":"string"}},"title":"LinkedIn ad search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"ads":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"adType":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"advertiser":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"advertiserLinkedinPage":{"type":"string"},"cta":{"type":"string"},"description":{"type":"string"},"destinationUrl":{"type":"string"},"endDate":{"type":"string"},"headline":{"type":"string"},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"startDate":{"type":"string"},"totalImpressions":{"type":"string"}},"required":["id","advertiser","advertiserLinkedinPage","headline","description","adType","cta","destinationUrl","startDate","endDate","totalImpressions"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"nextCursor":{"type":"string"},"totalAds":{"type":"integer"}},"required":["nextCursor","totalAds","ads"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"LinkedIn ad search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"LinkedIn Ad Search","tags":["linkedin"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/linkedin.company":{"post":{"description":"Fetch a full LinkedIn company page by URL: name, description, industry, employee count and range, follower count, founded year, headquarters and office locations, funding data, tagline, logo, website, and specialities.\n\n**Price:** billed per result - \\$4.00 per 1,000 requests base + \\$0.00 per 1,000 results, capped at \\$4.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"linkedin_company","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.linkedin.com/company/stripe"},"schema":{"additionalProperties":false,"example":{"url":"https://www.linkedin.com/company/stripe"},"properties":{"url":{"description":"Full LinkedIn company page URL.","type":"string"}},"required":["url"],"title":"LinkedIn company input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"companyType":{"description":"Company type, e.g. Privately Held, Public Company.","type":"string"},"description":{"description":"Company about/description text. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"employeeCount":{"description":"Reported total employee count. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"employeeCountRange":{"description":"LinkedIn size bucket the company falls in.","properties":{"end":{"description":"Upper bound of the employee-count bucket.","type":"integer"},"start":{"description":"Lower bound of the employee-count bucket.","type":"integer"}},"type":"object"},"followerCount":{"description":"LinkedIn page follower count. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"foundedOn":{"description":"Founding date (year populated when known).","properties":{"year":{"description":"Year the company was founded.","type":"integer"}},"type":"object"},"fundingData":{"description":"Funding summary sourced from Crunchbase, when available.","properties":{"companyCrunchbaseUrl":{"description":"Crunchbase profile URL for the company.","type":"string"},"lastFundingType":{"description":"Type of the most recent funding round.","type":"string"},"numFundingRounds":{"description":"Total number of funding rounds.","type":"integer"}},"type":"object"},"industry":{"description":"Primary industry.","type":"string"},"locations":{"description":"Company office locations, including headquarters.","items":{"properties":{"city":{"description":"City.","type":"string"},"country":{"description":"ISO country code.","type":"string"},"headquarter":{"description":"True when this location is the headquarters.","type":"boolean"},"line1":{"description":"Street address line.","type":"string"},"postalCode":{"description":"Postal code.","type":"string"}},"type":"object"},"type":"array"},"logoUrl":{"description":"Company logo image URL.","type":"string"},"name":{"description":"Company name.","type":"string"},"pageVerified":{"description":"Whether LinkedIn has verified the company page.","type":"boolean"},"similarOrganizations":{"description":"Similar organizations surfaced by LinkedIn.","items":{},"type":"array"},"specialities":{"description":"Company-declared specialities.","items":{},"type":"array"},"tagline":{"description":"Company tagline/slogan.","type":"string"},"universalName":{"description":"LinkedIn universal (vanity) name for the company.","type":"string"},"website":{"description":"Company website URL.","type":"string"}},"required":["name","description","employeeCount","followerCount","industry","website","tagline","logoUrl"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"LinkedIn company output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"LinkedIn Company","tags":["linkedin"],"x-payment-info":{"price":{"currency":"USD","max":"0.004000","min":"0.004000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/linkedin.company_employees":{"post":{"description":"List the employees of a LinkedIn company by name or company URL, with optional job-title filtering.\n\n**Price:** billed per result - \\$10.00 per 1,000 results, capped at \\$100.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"linkedin_company_employees","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"company":"stripe","limit":3},"schema":{"additionalProperties":false,"example":{"company":"stripe","limit":3},"properties":{"company":{"description":"Company name or LinkedIn company URL (e.g. google or https://www.linkedin.com/company/google/).","type":"string"},"jobTitle":{"description":"Optional job-title filter supporting boolean operators (e.g. CEO OR CTO).","type":"string"},"limit":{"description":"Maximum number of results to return (1-10, default 10). You are billed per result returned, so a lower limit costs less.","maximum":10,"minimum":1,"type":"integer"}},"required":["company"],"title":"LinkedIn company employees input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The results wrapper, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Employee records for the company. Populated whenever the provider has data for the entity.","items":{"description":"An employee: name, headline, location, handle, and LinkedIn profile URL.","properties":{"firstName":{"description":"First name.","type":"string"},"handle":{"description":"Public profile identifier (the vanity slug in the URL). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"Profile picture URL.","type":"string"},"jobTitle":{"description":"The employee's current role or headline.","type":"string"},"lastName":{"description":"Last name.","type":"string"},"location":{"description":"The employee's location as a single string (city, region, country).","type":"string"},"name":{"description":"Full name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Canonical LinkedIn profile URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when at least one employee was returned.","type":"boolean"}},"required":["found","data"],"title":"LinkedIn company employees output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"LinkedIn Company Employees","tags":["linkedin"],"x-payment-info":{"price":{"currency":"USD","max":"0.100000","min":"0.000000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/linkedin.company_posts":{"post":{"description":"List a LinkedIn company page's recent posts by URL: full text, canonical link, publish date, author, engagement counts with a per-reaction breakdown, and attached media.\n\n**Price:** billed per result - \\$0.05 per 1,000 requests base + \\$1.75 per 1,000 results, capped at \\$87.55 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"linkedin_company_posts","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":10,"url":"https://www.linkedin.com/company/stripe"},"schema":{"additionalProperties":false,"example":{"limit":10,"url":"https://www.linkedin.com/company/stripe"},"properties":{"includeQuotePosts":{"description":"Include quote posts (posts shared with an added comment). Defaults to true; set false to exclude them.","type":"boolean"},"includeReposts":{"description":"Include reposts (posts shared without an added comment). Defaults to true; set false to exclude them.","type":"boolean"},"limit":{"default":10,"description":"Maximum number of posts to return.","maximum":50,"minimum":1,"type":"integer"},"postedLimit":{"description":"Only return posts published within this window (default any).","enum":["any","1h","24h","week","month","3months","6months","year"],"type":"string"},"url":{"description":"Full LinkedIn company page URL.","type":"string"}},"required":["url"],"title":"LinkedIn company posts input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The company posts result, or null when not found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"The company's recent posts. Populated whenever the provider has data for the entity.","items":{"properties":{"author":{"description":"The post author (a company or a profile).","properties":{"followers":{"description":"Author follower count as displayed text (e.g. '1,543,793 followers').","type":"string"},"linkedinUrl":{"description":"Canonical LinkedIn URL of the author.","type":"string"},"name":{"description":"Display name of the author.","type":"string"},"type":{"description":"Author kind, e.g. 'company' or 'profile'.","type":"string"},"universalName":{"description":"URL-safe company/profile handle, when present.","type":"string"}},"type":"object"},"contentAttributes":{"description":"Inline mentions and entity references in the post text.","items":{"type":"object"},"type":"array"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"engagement":{"description":"Engagement metrics for the post.","properties":{"comments":{"description":"Number of comments on the post.","type":"integer"},"likes":{"description":"Total reaction count on the post. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"reactions":{"description":"Per-reaction-type breakdown of the reaction total.","items":{"properties":{"count":{"description":"Number of reactions of this type.","type":"integer"},"type":{"description":"Reaction type, e.g. LIKE, PRAISE, EMPATHY, INTEREST, APPRECIATION.","type":"string"}},"type":"object"},"type":"array"},"shares":{"description":"Number of shares/reposts of the post.","type":"integer"}},"type":"object"},"id":{"description":"Unique identifier of the post. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"postImages":{"description":"Images attached to the post.","items":{"type":"object"},"type":"array"},"postVideo":{"description":"Video attached to the post, or null when absent.","type":["object","null"]},"text":{"description":"Full text content of the post.","type":"string"},"url":{"description":"Canonical URL of the post. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","url","text","createdUtc"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"Whether the company posts were found.","type":"boolean"}},"required":["found","data"],"title":"LinkedIn company posts output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"LinkedIn Company Posts","tags":["linkedin"],"x-payment-info":{"price":{"currency":"USD","max":"0.087550","min":"0.000050","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/linkedin.company_posts_thin":{"post":{"description":"Post text and link only. No engagement counts, author details, media, or reaction breakdown - for those use linkedin.company_posts.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"linkedin_company_posts_thin","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.linkedin.com/company/stripe"},"schema":{"additionalProperties":false,"example":{"url":"https://www.linkedin.com/company/stripe"},"properties":{"page":{"description":"Page number for pagination.","minimum":1,"type":"integer"},"url":{"description":"Full LinkedIn company page URL.","type":"string"}},"required":["url"],"title":"LinkedIn company posts (basic) input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The company posts result, or null when not found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"The company's recent posts. Populated whenever the provider has data for the entity.","items":{"properties":{"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"id":{"description":"Unique identifier of the post. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"text":{"description":"Text content of the post. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Canonical URL of the post. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","url","text","createdUtc"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"Whether the company posts were found.","type":"boolean"}},"required":["found","data"],"title":"LinkedIn company posts (basic) output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"LinkedIn Company Posts (basic)","tags":["linkedin"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/linkedin.company_thin":{"post":{"description":"Basic company: name, description, employee count, industry, logo, website, tagline. No follower count, founded year, office locations, or funding data - for those use linkedin.company.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"linkedin_company_thin","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.linkedin.com/company/stripe"},"schema":{"additionalProperties":false,"example":{"url":"https://www.linkedin.com/company/stripe"},"properties":{"url":{"description":"Full LinkedIn company page URL.","type":"string"}},"required":["url"],"title":"LinkedIn company (basic) input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"description":{"description":"Company about/description text. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"employeeCount":{"description":"Reported employee count.","type":"integer"},"industry":{"description":"Primary industry. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"logoUrl":{"description":"Company logo image URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"name":{"description":"Company name.","type":"string"},"tagline":{"description":"Company tagline/slogan. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"website":{"description":"Company website URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["name","description","employeeCount","industry","website","tagline","logoUrl"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"LinkedIn company (basic) output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"LinkedIn Company (basic)","tags":["linkedin"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/linkedin.email":{"post":{"description":"Find the deliverability-validated work email behind a LinkedIn profile URL or public ID. Returns each discovered email with its deliverability, validation status, and quality score, plus the person's name and headline.\n\n**Price:** billed per result - \\$10.00 per 1,000 requests base + \\$0.00 per 1,000 results, capped at \\$10.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"linkedin_email","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"profileUrl":"https://www.linkedin.com/in/satyanadella"},"schema":{"additionalProperties":false,"example":{"profileUrl":"https://www.linkedin.com/in/satyanadella"},"properties":{"profileUrl":{"description":"LinkedIn profile URL or public identifier (the last part of the URL) to find the deliverability-validated work email for.","type":"string"}},"required":["profileUrl"],"title":"LinkedIn email finder input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The profile with its discovered emails, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"emails":{"description":"Deliverability-validated work emails discovered for the profile. Populated whenever the provider has data for the entity.","items":{"description":"A discovered email with its deliverability and validation signals.","properties":{"deliverable":{"description":"True when the email passed deliverability checks (including SMTP).","type":"boolean"},"email":{"description":"Discovered work email address. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"qualityScore":{"description":"Confidence score for the email, 0-100.","type":"integer"},"status":{"description":"Validation status of the email (e.g. valid).","type":"string"},"validEmailServer":{"description":"True when the domain has a valid mail server.","type":"boolean"}},"required":["email"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"firstName":{"description":"First name on the LinkedIn profile.","type":"string"},"headline":{"description":"Profile headline.","type":"string"},"lastName":{"description":"Last name on the LinkedIn profile.","type":"string"},"linkedinUrl":{"description":"Canonical LinkedIn profile URL.","type":"string"}},"required":["emails"],"type":"object"}]},"found":{"description":"True when at least one email was discovered for the profile.","type":"boolean"}},"required":["found","data"],"title":"LinkedIn email finder output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"LinkedIn Email Finder","tags":["linkedin"],"x-payment-info":{"price":{"currency":"USD","max":"0.010000","min":"0.010000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/linkedin.jobs":{"post":{"description":"Search LinkedIn job listings by title and location - full records with description, salary, applicant count, seniority, company details, and benefits. Up to 25 jobs per request.\n\n**Price:** billed per result - \\$1.00 per 1,000 requests base + \\$1.00 per 1,000 results, capped at \\$26.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"linkedin_jobs","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"location":"United States","query":"software engineer","workplaceType":"remote"},"schema":{"additionalProperties":false,"example":{"limit":3,"location":"United States","query":"software engineer","workplaceType":"remote"},"properties":{"company":{"description":"Filter to a specific company by name (e.g. Google).","type":"string"},"easyApply":{"description":"When true, only return jobs offering LinkedIn Easy Apply.","type":"boolean"},"employmentType":{"description":"Filter by employment type.","enum":["full-time","part-time","contract","internship","temporary"],"type":"string"},"experienceLevel":{"description":"Filter by required seniority/experience level.","enum":["internship","entry","associate","mid-senior","director","executive"],"type":"string"},"limit":{"description":"Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.","maximum":25,"minimum":1,"type":"integer"},"location":{"description":"City, region, or country to search within (e.g. United States, San Francisco).","type":"string"},"postedLimit":{"description":"Only jobs posted within this window (past hour, 24 hours, week, or month).","enum":["1h","24h","week","month"],"type":"string"},"query":{"description":"Job title or keywords to search. Supports LinkedIn boolean operators.","type":"string"},"salary":{"description":"Filter by minimum base salary band (US dollars).","enum":["40k+","60k+","80k+","100k+","120k+","140k+","160k+","180k+","200k+"],"type":"string"},"sortBy":{"description":"Sort order: most recent (date) or best match (relevance).","enum":["date","relevance"],"type":"string"},"under10Applicants":{"description":"When true, only return jobs with fewer than 10 applicants (lower competition).","type":"boolean"},"workplaceType":{"description":"Filter by workplace type (remote, hybrid, or onsite).","enum":["remote","hybrid","onsite"],"type":"string"}},"required":["query"],"title":"LinkedIn Jobs input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The results wrapper, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Full job listing records for the search. Populated whenever the provider has data for the entity.","items":{"description":"A LinkedIn job listing with full detail: title, description, salary, applicant count, seniority, company, and benefits.","properties":{"applicants":{"description":"Number of applicants reported by LinkedIn. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"applyUrl":{"description":"External company apply URL when the job applies off-site.","type":"string"},"benefits":{"description":"Listed benefits.","items":{"type":"string"},"type":"array"},"company":{"description":"Hiring company details.","properties":{"linkedinUrl":{"description":"Canonical LinkedIn company URL.","type":"string"},"logo":{"description":"Company logo image URL.","type":"string"},"name":{"description":"Company name.","type":"string"},"universalName":{"description":"Company LinkedIn universal (vanity) name.","type":"string"}},"type":"object"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time) the job was posted. Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"descriptionText":{"description":"Full job description as plain text. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"easyApplyUrl":{"description":"LinkedIn Easy Apply URL when available.","type":"string"},"employmentType":{"description":"Employment type (e.g. full_time, contract, part_time).","type":"string"},"experienceLevel":{"description":"Seniority / experience level (e.g. Mid-Senior level, Entry level).","type":"string"},"id":{"description":"LinkedIn job listing id.","type":"string"},"industries":{"description":"Industries associated with the role.","items":{"type":"string"},"type":"array"},"location":{"description":"Job location (city, region, or country).","type":"string"},"salary":{"description":"Salary range when disclosed by the poster.","properties":{"max":{"description":"Maximum salary.","type":"number"},"min":{"description":"Minimum salary.","type":"number"},"text":{"description":"Salary as displayed (e.g. '300,000 - 330,000 USD').","type":"string"}},"type":"object"},"title":{"description":"Job title.","type":"string"},"url":{"description":"Canonical LinkedIn job listing URL.","type":"string"},"workplaceType":{"description":"Workplace type (e.g. remote, on_site, hybrid).","type":"string"}},"required":["title","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when at least one job listing was returned.","type":"boolean"}},"required":["found","data"],"title":"LinkedIn Jobs output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"LinkedIn Jobs","tags":["linkedin"],"x-payment-info":{"price":{"currency":"USD","max":"0.026000","min":"0.001000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/linkedin.jobs_thin":{"post":{"description":"Cheap job index: title, company, location, posted date, URL. No description, salary, applicant counts, or seniority - for those use linkedin.jobs.\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"linkedin_jobs_thin","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"location":"United States","query":"software engineer","workplaceType":"remote"},"schema":{"additionalProperties":false,"example":{"limit":3,"location":"United States","query":"software engineer","workplaceType":"remote"},"properties":{"companyId":{"description":"Filter to a specific company by its LinkedIn numeric company id.","type":"string"},"employmentType":{"description":"Filter by employment type.","enum":["full-time","part-time","contract","internship","temporary"],"type":"string"},"experienceLevel":{"description":"Filter by required seniority/experience level.","enum":["internship","entry","associate","mid-senior","director","executive"],"type":"string"},"geoId":{"description":"LinkedIn geo id to target a precise location (e.g. 103644278 for the United States); more exact than the free-text location.","type":"string"},"limit":{"description":"Maximum number of results to return (1-25, default 25).","maximum":25,"minimum":1,"type":"integer"},"location":{"description":"City, region, or country to search within.","type":"string"},"postedLimit":{"description":"Only jobs posted within this window (past 24 hours, week, or month).","enum":["24h","week","month"],"type":"string"},"query":{"description":"Job title or keywords to search.","type":"string"},"workplaceType":{"description":"Filter by workplace type (remote, hybrid, or onsite).","enum":["remote","hybrid","onsite"],"type":"string"}},"required":["query"],"title":"LinkedIn Jobs (index) input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The results wrapper, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Job listing index records for the search. Populated whenever the provider has data for the entity.","items":{"description":"A LinkedIn job listing index entry: title, company, location, posting date, and the listing URL.","properties":{"company":{"description":"Hiring company name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"companyUrl":{"description":"Canonical LinkedIn company URL.","type":"string"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"id":{"description":"LinkedIn job listing id.","type":"string"},"location":{"description":"Job location (city, region). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Job title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Canonical LinkedIn job listing URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["title","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when at least one job listing was returned.","type":"boolean"}},"required":["found","data"],"title":"LinkedIn Jobs (index) output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"LinkedIn Jobs (index)","tags":["linkedin"],"x-payment-info":{"price":{"amount":"0.001000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/linkedin.post":{"post":{"description":"Fetch a single LinkedIn post or article by URL (title, text, author, like and comment counts, publish date).\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"linkedin_post","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.linkedin.com/posts/stripe_last-week-agent-traffic-surpassed-human-activity-7470882737390940160-2Nxs"},"schema":{"additionalProperties":false,"example":{"url":"https://www.linkedin.com/posts/stripe_last-week-agent-traffic-surpassed-human-activity-7470882737390940160-2Nxs"},"properties":{"url":{"description":"Full LinkedIn post or article URL.","type":"string"}},"required":["url"],"title":"LinkedIn post input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The post result, or null when not found.","oneOf":[{"type":"null"},{"properties":{"author":{"description":"Name of the post author. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"comments":{"description":"Number of comments on the post.","type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"likes":{"description":"Number of likes on the post.","type":"integer"},"text":{"description":"Text content of the post. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Title of the post.","type":"string"},"url":{"description":"Canonical URL of the post. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["url","title","text","author","likes","comments","createdUtc"],"type":"object"}]},"found":{"description":"Whether the post was found.","type":"boolean"}},"required":["found","data"],"title":"LinkedIn post output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"LinkedIn Post","tags":["linkedin"],"x-payment-info":{"price":{"currency":"USD","max":"0.002000","min":"0.001000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/linkedin.post_comments":{"post":{"description":"List comments on a LinkedIn post - full text, commenter name/URL/job title, timestamps, and engagement.\n\n**Price:** billed per result - \\$2.00 per 1,000 results, capped at \\$200.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"linkedin_post_comments","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":10,"url":"https://www.linkedin.com/posts/stripe_philip-kl%C3%B6ckner-in-conversation-with-conor-activity-7477791740645564416-tIbZ"},"schema":{"additionalProperties":false,"example":{"limit":10,"url":"https://www.linkedin.com/posts/stripe_philip-kl%C3%B6ckner-in-conversation-with-conor-activity-7477791740645564416-tIbZ"},"properties":{"limit":{"default":100,"description":"Maximum number of comments to return. You are billed per comment returned, so a lower limit costs less.","maximum":100,"minimum":1,"type":"integer"},"postedLimit":{"description":"Only return comments posted within this window (default any).","enum":["any","24h","week","month","3months","6months","year"],"type":"string"},"url":{"description":"Full URL of the LinkedIn post to list comments for.","type":"string"}},"required":["url"],"title":"LinkedIn post comments input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The post comments result, or null when not found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"The post's comments. Populated whenever the provider has data for the entity.","items":{"properties":{"actor":{"description":"The commenter (a profile or a company).","properties":{"image":{"description":"Profile picture URL of the commenter.","type":"string"},"linkedinUrl":{"description":"Canonical LinkedIn URL of the commenter.","type":"string"},"name":{"description":"Display name of the commenter.","type":"string"},"position":{"description":"Commenter's headline or job title as displayed.","type":"string"},"type":{"description":"Commenter kind, e.g. 'profile' or 'company'.","type":"string"}},"type":"object"},"commentary":{"description":"Full text of the comment. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"edited":{"description":"Whether the comment has been edited.","type":"boolean"},"engagement":{"description":"Engagement metrics for the comment.","properties":{"comments":{"description":"Number of replies to the comment.","type":"integer"},"likes":{"description":"Number of likes on the comment.","type":"integer"}},"type":"object"},"id":{"description":"Unique identifier of the comment. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"pinned":{"description":"Whether the comment is pinned on the post.","type":"boolean"},"url":{"description":"Canonical permalink URL of the comment.","type":"string"}},"required":["id","commentary"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"Whether comments were found for the post.","type":"boolean"}},"required":["found","data"],"title":"LinkedIn post comments output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"LinkedIn Post Comments","tags":["linkedin"],"x-payment-info":{"price":{"currency":"USD","max":"0.200000","min":"0.000000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/linkedin.post_reactions":{"post":{"description":"List who reacted to a LinkedIn post - reactor name, profile URL, job title, and reaction type. Lead-gen grade.\n\n**Price:** billed per result - \\$2.00 per 1,000 results, capped at \\$200.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"linkedin_post_reactions","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":5,"url":"https://www.linkedin.com/posts/satyanadella_today-were-bringing-skills-to-copilot-for-activity-7475945433668694017--kvG"},"schema":{"additionalProperties":false,"example":{"limit":5,"url":"https://www.linkedin.com/posts/satyanadella_today-were-bringing-skills-to-copilot-for-activity-7475945433668694017--kvG"},"properties":{"limit":{"description":"Maximum number of reactions to return (1-100, default 100). You are billed per reaction returned, so a lower limit costs less.","maximum":100,"minimum":1,"type":"integer"},"url":{"description":"URL of the LinkedIn post to list reactions for (a /posts/...-activity-... or /feed/update/urn:li:activity:... link).","minLength":1,"type":"string"}},"required":["url"],"title":"LinkedIn Post Reactions input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Reactions on the post, one record per reactor.","items":{"properties":{"actor":{"description":"The reactor - the person or company that reacted.","properties":{"id":{"description":"LinkedIn member or company id of the reactor.","type":"string"},"linkedinUrl":{"description":"Canonical LinkedIn profile or company URL of the reactor.","format":"uri","type":"string"},"name":{"description":"Full name of the reactor (or company name). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"pictureUrl":{"description":"Profile picture URL of the reactor.","type":"string"},"position":{"description":"Reactor's current job title / headline (or follower count for a company).","type":"string"}},"required":["name"],"type":"object"},"postId":{"description":"LinkedIn URN of the post that was reacted to.","type":"string"},"reactionType":{"description":"Reaction kind (e.g. LIKE, PRAISE, EMPATHY, INTEREST, APPRECIATION, ENTERTAINMENT).","type":"string"}},"required":["reactionType","actor"],"type":"object"},"type":"array"}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"LinkedIn Post Reactions output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"LinkedIn Post Reactions","tags":["linkedin"],"x-payment-info":{"price":{"currency":"USD","max":"0.200000","min":"0.000000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/linkedin.post_transcript":{"post":{"description":"Get the spoken transcript of a LinkedIn video post by URL.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"linkedin_post_transcript","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.linkedin.com/posts/artificial-analysis_gemini-35-flash-is-a-step-forward-for-google-activity-7465082408409870337-4Pm-"},"schema":{"additionalProperties":false,"example":{"url":"https://www.linkedin.com/posts/artificial-analysis_gemini-35-flash-is-a-step-forward-for-google-activity-7465082408409870337-4Pm-"},"properties":{"url":{"description":"The full URL of the LinkedIn post to get the video transcript from.","type":"string"}},"required":["url"],"title":"LinkedIn Post Transcript input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"transcript":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"transcriptNotAvailable":{"type":"boolean"},"url":{"type":"string"}},"required":["url","transcript","transcriptNotAvailable"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"LinkedIn Post Transcript output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"LinkedIn Post Transcript","tags":["linkedin"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/linkedin.profile":{"post":{"description":"Fetch a rich LinkedIn member profile by URL: name, headline, avatar, location, connections and followers, current position, and full work experience with job titles, descriptions, dates, employment/workplace type, and per-role skills, plus education, skills, certifications, honors and awards, languages, projects, publications, and verified/premium/open-to-work flags.\n\n**Price:** billed per result - \\$4.00 per 1,000 requests base + \\$0.00 per 1,000 results, capped at \\$4.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"linkedin_profile","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.linkedin.com/in/williamhgates"},"schema":{"additionalProperties":false,"example":{"url":"https://www.linkedin.com/in/williamhgates"},"properties":{"url":{"description":"Full LinkedIn profile URL.","type":"string"}},"required":["url"],"title":"LinkedIn profile input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The profile result, or null when not found.","oneOf":[{"type":"null"},{"properties":{"about":{"description":"About/summary text of the profile.","type":"string"},"certifications":{"description":"Licenses and certifications.","items":{"properties":{"issuedAt":{"description":"Issue date text.","type":"string"},"issuedBy":{"description":"Issuing organization.","type":"string"},"title":{"description":"Certification title.","type":"string"}},"type":"object"},"type":"array"},"connectionsCount":{"description":"Number of connections.","type":"integer"},"currentPosition":{"description":"The member's current role(s).","items":{"properties":{"companyLinkedinUrl":{"description":"Company LinkedIn URL.","type":"string"},"companyName":{"description":"Company name.","type":"string"},"duration":{"description":"Human-readable tenure, e.g. '12 yrs 6 mos'.","type":"string"},"location":{"description":"Role location.","type":"string"},"position":{"description":"Job title.","type":"string"}},"type":"object"},"type":"array"},"education":{"description":"Education entries.","items":{"properties":{"degree":{"description":"Degree earned.","type":"string"},"endDate":{"description":"End date text.","type":"string"},"fieldOfStudy":{"description":"Field of study.","type":"string"},"school":{"description":"School name.","type":"string"},"schoolUrl":{"description":"School LinkedIn URL.","type":"string"},"startDate":{"description":"Start date text.","type":"string"}},"required":["school"],"type":"object"},"type":"array"},"experience":{"description":"Full work experience with titles, descriptions, dates, and per-role skills. Populated whenever the provider has data for the entity.","items":{"properties":{"companyLinkedinUrl":{"description":"Company LinkedIn URL.","type":"string"},"companyName":{"description":"Company name.","type":"string"},"description":{"description":"Role description.","type":"string"},"duration":{"description":"Human-readable tenure, e.g. '3 yrs 2 mos'.","type":"string"},"employmentType":{"description":"Employment type, e.g. 'Full-time'.","type":"string"},"endDate":{"description":"End date text, e.g. 'Present'.","type":"string"},"location":{"description":"Role location.","type":"string"},"position":{"description":"Job title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"skills":{"description":"Skills associated with this role.","items":{},"type":"array"},"startDate":{"description":"Start date text, e.g. 'Feb 2014'.","type":"string"},"workplaceType":{"description":"Workplace type, e.g. 'Remote' or 'On-site'.","type":"string"}},"required":["position"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"firstName":{"description":"First name of the profile owner.","type":"string"},"followerCount":{"description":"Number of followers.","type":"integer"},"headline":{"description":"Professional headline shown under the name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"honorsAndAwards":{"description":"Honors and awards.","items":{"properties":{"description":{"description":"Award description.","type":"string"},"issuedAt":{"description":"Issue date text.","type":"string"},"issuedBy":{"description":"Issuing organization.","type":"string"},"title":{"description":"Award title.","type":"string"}},"type":"object"},"type":"array"},"languages":{"description":"Languages, as returned by LinkedIn when present.","items":{},"type":"array"},"lastName":{"description":"Last name of the profile owner.","type":"string"},"location":{"description":"Location of the profile owner.","type":"string"},"openToWork":{"description":"Whether the member is open to work.","type":"boolean"},"photo":{"description":"URL of the profile photo.","type":"string"},"premium":{"description":"Whether the member has LinkedIn Premium.","type":"boolean"},"projects":{"description":"Projects, as returned by LinkedIn when present.","items":{},"type":"array"},"publicIdentifier":{"description":"LinkedIn public identifier (the /in/ handle).","type":"string"},"publications":{"description":"Publications.","items":{"properties":{"description":{"description":"Publication description.","type":"string"},"publishedText":{"description":"Publisher and/or date text as shown on LinkedIn.","type":"string"},"title":{"description":"Publication title.","type":"string"}},"type":"object"},"type":"array"},"skills":{"description":"Endorsed skills.","items":{"properties":{"endorsements":{"description":"Endorsement count text, e.g. '99+ endorsements'.","type":"string"},"name":{"description":"Skill name.","type":"string"}},"type":"object"},"type":"array"},"topSkills":{"description":"The member's top skills, as free-form strings when present.","items":{},"type":"array"},"url":{"description":"Canonical LinkedIn profile URL.","type":"string"},"verified":{"description":"Whether the profile is identity-verified.","type":"boolean"}},"required":["firstName","lastName","headline","url"],"type":"object"}]},"found":{"description":"Whether the profile was found.","type":"boolean"}},"required":["found","data"],"title":"LinkedIn profile output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"LinkedIn Profile","tags":["linkedin"],"x-payment-info":{"price":{"currency":"USD","max":"0.004000","min":"0.004000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/linkedin.profile_thin":{"post":{"description":"Lightweight profile: name, avatar, location, followers, and a basic experience/education list (company + dates only, no job titles, descriptions, or skills; past companies may be redacted). For full experience detail, skills, certifications, connections, and verified flags use linkedin.profile.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"linkedin_profile_thin","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.linkedin.com/in/williamhgates"},"schema":{"additionalProperties":false,"example":{"url":"https://www.linkedin.com/in/williamhgates"},"properties":{"url":{"description":"Full LinkedIn profile URL.","type":"string"}},"required":["url"],"title":"LinkedIn profile (basic) input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The profile result, or null when not found.","oneOf":[{"type":"null"},{"properties":{"about":{"description":"About/summary text of the profile.","type":"string"},"articles":{"description":"The profile's published articles.","items":{"properties":{"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"headline":{"description":"Headline of the article.","type":"string"},"url":{"description":"Canonical URL of the article.","type":"string"}},"required":["headline"],"type":"object"},"type":"array"},"avatarUrl":{"description":"URL of the profile avatar image.","type":"string"},"education":{"description":"Education entries.","items":{"properties":{"endDate":{"description":"End date of study.","type":"string"},"school":{"description":"Name of the school.","type":"string"},"schoolUrl":{"description":"URL of the school page.","type":"string"},"startDate":{"description":"Start date of study.","type":"string"}},"required":["school"],"type":"object"},"type":"array"},"experience":{"description":"Work experience entries (company and dates only in this basic tier). Populated whenever the provider has data for the entity.","items":{"properties":{"company":{"description":"Name of the company.","type":"string"},"companyUrl":{"description":"URL of the company page.","type":"string"},"endDate":{"description":"End date of the role.","type":"string"},"startDate":{"description":"Start date of the role.","type":"string"}},"required":["company"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"followers":{"description":"Number of followers.","type":"integer"},"location":{"description":"Location of the profile owner.","type":"string"},"name":{"description":"Full name of the profile owner.","type":"string"},"recentPosts":{"description":"The profile's recent posts.","items":{"properties":{"activityType":{"description":"Type of activity for the post.","type":"string"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"id":{"description":"Unique identifier of the post.","type":"string"},"text":{"description":"Text content of the post.","type":"string"},"url":{"description":"Canonical URL of the post.","type":"string"}},"required":["id"],"type":"object"},"type":"array"}},"required":["name","location","followers","about","avatarUrl","experience","education","recentPosts","articles"],"type":"object"}]},"found":{"description":"Whether the profile was found.","type":"boolean"}},"required":["found","data"],"title":"LinkedIn profile (basic) output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"LinkedIn Profile (basic)","tags":["linkedin"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/linkedin.search_companies":{"post":{"description":"Search LinkedIn companies by keyword with optional location filtering, returning normalized company records.\n\n**Price:** billed per result - \\$1.00 per 1,000 requests base + \\$4.00 per 1,000 results, capped at \\$81.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"linkedin_search_companies","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"query":"fintech"},"schema":{"additionalProperties":false,"example":{"limit":3,"query":"fintech"},"properties":{"limit":{"description":"Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.","maximum":20,"minimum":1,"type":"integer"},"location":{"description":"Optional location filter, written out in full (e.g. United Kingdom or San Francisco).","type":"string"},"query":{"description":"Keyword to search LinkedIn companies for (e.g. marketing agency).","type":"string"}},"required":["query"],"title":"LinkedIn company search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The results wrapper, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Matching company records. Populated whenever the provider has data for the entity.","items":{"description":"A LinkedIn company: name, URL, industry, location, follower count, and description.","properties":{"description":{"description":"Company summary / about text.","type":"string"},"followersText":{"description":"Follower count as a display string (e.g. 105K followers).","type":"string"},"handle":{"description":"Company universal name (the vanity slug in the URL).","type":"string"},"id":{"description":"LinkedIn company id. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"Company logo image URL.","type":"string"},"industry":{"description":"Company industry.","type":"string"},"location":{"description":"Company location as a single string (city, region).","type":"string"},"name":{"description":"Company name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Canonical LinkedIn company URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","name","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when at least one company was returned.","type":"boolean"}},"required":["found","data"],"title":"LinkedIn company search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"LinkedIn Company Search","tags":["linkedin"],"x-payment-info":{"price":{"currency":"USD","max":"0.081000","min":"0.001000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/linkedin.search_posts":{"post":{"description":"Search public LinkedIn posts by keyword (text, link, publish date).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"linkedin_search_posts","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"datePosted":"last-week","query":"hiring"},"schema":{"additionalProperties":false,"example":{"datePosted":"last-week","query":"hiring"},"properties":{"cursor":{"description":"Pagination cursor from a previous response.","type":"string"},"datePosted":{"description":"Filter by recency. One of last-hour, last-day, last-week, last-month, last-year.","enum":["last-hour","last-day","last-week","last-month","last-year"],"type":"string"},"query":{"description":"The post search query.","type":"string"}},"required":["query"],"title":"LinkedIn post search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The search result, or null when not found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"posts":{"description":"Posts matching the search query. Populated whenever the provider has data for the entity.","items":{"properties":{"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"text":{"description":"Text content of the post. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Canonical URL of the post. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["url","text","createdUtc"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["posts"],"type":"object"}]},"found":{"description":"Whether matching posts were found.","type":"boolean"}},"required":["found","data"],"title":"LinkedIn post search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"LinkedIn Post Search","tags":["linkedin"],"x-payment-info":{"price":{"currency":"USD","max":"0.004000","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/linkedin.search_profiles":{"post":{"description":"Search LinkedIn profiles by keyword with optional location and job-title filters. Each match returns a full profile record: name, headline, location, current position, work experience, education, and skills, plus the profile URL, handle, and id. For a cheaper name/headline/URL-only search use linkedin.search_profiles_thin; add emails with linkedin.search_profiles_email.\n\n**Price:** billed per result - \\$80.00 per 1,000 requests base + \\$4.00 per 1,000 results, capped at \\$180.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"linkedin_search_profiles","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"currentCompanies":["Google"],"limit":3,"query":"engineer"},"schema":{"additionalProperties":false,"example":{"currentCompanies":["Google"],"limit":3,"query":"engineer"},"properties":{"companyHeadcount":{"description":"Filter by current company size (employee count). Codes: A=Self-Employed, B=1-10, C=11-50, D=51-200, E=201-500, F=501-1,000, G=1,001-5,000, H=5,001-10,000, I=10,001+.","items":{"enum":["A","B","C","D","E","F","G","H","I"],"type":"string"},"type":"array"},"companyHeadquarterLocations":{"description":"Filter by the location of the person's current company headquarters, by place name (e.g. ['United States']).","items":{"type":"string"},"type":"array"},"currentCompanies":{"description":"Filter to people who currently work at any of these companies, by name (e.g. ['Google','Meta']). Multiple names widen the match (OR).","items":{"type":"string"},"type":"array"},"excludeCompanyHeadquarterLocations":{"description":"Exclude people whose current company is headquartered in any of these locations.","items":{"type":"string"},"type":"array"},"excludeCurrentCompanies":{"description":"Exclude people who currently work at any of these companies, by name.","items":{"type":"string"},"type":"array"},"excludeCurrentJobTitles":{"description":"Exclude people whose current job title matches any of these.","items":{"type":"string"},"type":"array"},"excludeFunctionIds":{"description":"Exclude these job functions (same codes as functionIds).","items":{"enum":["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26"],"type":"string"},"type":"array"},"excludeLocations":{"description":"Exclude people in any of these locations, by place name.","items":{"type":"string"},"type":"array"},"excludePastCompanies":{"description":"Exclude people who previously worked at any of these companies, by name.","items":{"type":"string"},"type":"array"},"excludePastJobTitles":{"description":"Exclude people who held any of these past job titles.","items":{"type":"string"},"type":"array"},"excludeSchools":{"description":"Exclude people who attended any of these schools, by name.","items":{"type":"string"},"type":"array"},"excludeSeniorityLevelIds":{"description":"Exclude these seniority levels (same codes as seniorityLevelIds).","items":{"enum":["100","110","120","130","200","210","220","300","310","320"],"type":"string"},"type":"array"},"firstNames":{"description":"Filter to people whose first name matches any of these.","items":{"type":"string"},"type":"array"},"functionIds":{"description":"Filter by job function. Codes: 1=Accounting, 2=Administrative, 3=Arts and Design, 4=Business Development, 5=Community and Social Services, 6=Consulting, 7=Education, 8=Engineering, 9=Entrepreneurship, 10=Finance, 11=Healthcare Services, 12=Human Resources, 13=Information Technology, 14=Legal, 15=Marketing, 16=Media and Communication, 17=Military and Protective Services, 18=Operations, 19=Product Management, 20=Program and Project Management, 21=Purchasing, 22=Quality Assurance, 23=Real Estate, 24=Research, 25=Sales, 26=Customer Success and Support.","items":{"enum":["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26"],"type":"string"},"type":"array"},"jobTitle":{"description":"Optional current job title filter (e.g. 'Software Engineer').","type":"string"},"lastNames":{"description":"Filter to people whose last name matches any of these.","items":{"type":"string"},"type":"array"},"limit":{"description":"Maximum number of full profiles to return (1-25, default 10). You are billed per profile returned, so a lower limit costs less.","maximum":25,"minimum":1,"type":"integer"},"location":{"description":"Optional location filter (e.g. 'San Francisco').","type":"string"},"pastCompanies":{"description":"Filter to people who previously worked at any of these companies, by name.","items":{"type":"string"},"type":"array"},"pastJobTitles":{"description":"Filter by a past job title the person held (e.g. ['Product Manager']).","items":{"type":"string"},"type":"array"},"profileLanguages":{"description":"Filter by the profile's primary language.","items":{"enum":["Arabic","English","Spanish","Portuguese","Chinese","French","Italian","Russian","German","Dutch","Turkish","Tagalog","Polish","Korean","Japanese","Malay","Norwegian","Danish","Romanian","Swedish","Bahasa Indonesia","Czech"],"type":"string"},"type":"array"},"query":{"description":"Search query for LinkedIn profiles: a role, name, or keywords (e.g. 'Marketing Manager').","type":"string"},"recentlyChangedJobs":{"description":"When true, only return people who recently changed jobs (a strong sales/recruiting signal).","type":"boolean"},"recentlyPostedOnLinkedIn":{"description":"When true, only return people who recently posted on LinkedIn (an activity signal).","type":"boolean"},"schools":{"description":"Filter to people who attended any of these schools, by name.","items":{"type":"string"},"type":"array"},"seniorityLevelIds":{"description":"Filter by seniority level. Codes: 100=In Training, 110=Entry Level, 120=Senior, 130=Strategic, 200=Entry Level Manager, 210=Experienced Manager, 220=Director, 300=Vice President, 310=CXO, 320=Owner/Partner.","items":{"enum":["100","110","120","130","200","210","220","300","310","320"],"type":"string"},"type":"array"},"yearsAtCurrentCompanyIds":{"description":"Filter by tenure at the current company. Codes: 1=Less than 1 year, 2=1 to 2 years, 3=3 to 5 years, 4=6 to 10 years, 5=More than 10 years.","items":{"enum":["1","2","3","4","5"],"type":"string"},"type":"array"},"yearsOfExperienceIds":{"description":"Filter by total years of experience. Codes: 1=Less than 1 year, 2=1 to 2 years, 3=3 to 5 years, 4=6 to 10 years, 5=More than 10 years.","items":{"enum":["1","2","3","4","5"],"type":"string"},"type":"array"}},"required":["query"],"title":"LinkedIn profile search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The results wrapper, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Matched profile records. Populated whenever the provider has data for the entity.","items":{"description":"A full LinkedIn profile: name, headline, location, about, current position, work experience, education, and skills, plus the profile URL, handle, and id.","properties":{"about":{"description":"Profile about / summary text.","type":"string"},"currentPosition":{"description":"Current role(s). Each entry is an open object with the position title, company, dates, and location; shape can vary by profile.","items":{"type":"object"},"type":"array"},"education":{"description":"Education history. Each entry is an open object with school, degree, and field of study; shape can vary by profile.","items":{"type":"object"},"type":"array"},"experience":{"description":"Full work history. Each entry is an open object with the position title, company, dates, and location; shape can vary by profile. Populated whenever the provider has data for the entity.","items":{"type":"object"},"type":"array","x-anyapi-must-populate":true},"firstName":{"description":"Member's first name.","type":"string"},"handle":{"description":"Public profile identifier (the vanity slug in the URL). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"headline":{"description":"Profile headline (the tagline under the name). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"LinkedIn member URN id for the profile.","type":"string"},"image":{"description":"Profile picture URL.","type":"string"},"lastName":{"description":"Member's last name.","type":"string"},"location":{"description":"Member's location as a single string (city, region, country).","type":"string"},"openToWork":{"description":"Whether the member has the Open to Work flag set.","type":"boolean"},"premium":{"description":"Whether the member has a LinkedIn Premium subscription.","type":"boolean"},"skills":{"description":"Listed skills. Each entry is an open object with the skill name and endorsement summary.","items":{"type":"object"},"type":"array"},"url":{"description":"Canonical LinkedIn profile URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when at least one profile was returned.","type":"boolean"}},"required":["found","data"],"title":"LinkedIn profile search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"LinkedIn Profile Search","tags":["linkedin"],"x-payment-info":{"price":{"currency":"USD","max":"0.180000","min":"0.080000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/linkedin.search_profiles_email":{"post":{"description":"People search returning a full profile AND a verified work email for each hit. Search LinkedIn profiles by keyword with optional location and job-title filters; each match returns the full profile record (name, headline, location, current position, work experience, education, and skills, plus the profile URL, handle, and id) together with an emails array carrying the discovered work email and its deliverability. For a full profile without email use linkedin.search_profiles; for a cheaper name/headline/URL-only search use linkedin.search_profiles_thin.\n\n**Price:** billed per result - \\$80.00 per 1,000 requests base + \\$9.00 per 1,000 results, capped at \\$305.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"linkedin_search_profiles_email","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"companyHeadcount":["B"],"limit":5,"query":"founder"},"schema":{"additionalProperties":false,"example":{"companyHeadcount":["B"],"limit":5,"query":"founder"},"properties":{"companyHeadcount":{"description":"Filter by current company size (employee count). Codes: A=Self-Employed, B=1-10, C=11-50, D=51-200, E=201-500, F=501-1,000, G=1,001-5,000, H=5,001-10,000, I=10,001+.","items":{"enum":["A","B","C","D","E","F","G","H","I"],"type":"string"},"type":"array"},"companyHeadquarterLocations":{"description":"Filter by the location of the person's current company headquarters, by place name (e.g. ['United States']).","items":{"type":"string"},"type":"array"},"currentCompanies":{"description":"Filter to people who currently work at any of these companies, by name (e.g. ['Google','Meta']). Multiple names widen the match (OR).","items":{"type":"string"},"type":"array"},"excludeCompanyHeadquarterLocations":{"description":"Exclude people whose current company is headquartered in any of these locations.","items":{"type":"string"},"type":"array"},"excludeCurrentCompanies":{"description":"Exclude people who currently work at any of these companies, by name.","items":{"type":"string"},"type":"array"},"excludeCurrentJobTitles":{"description":"Exclude people whose current job title matches any of these.","items":{"type":"string"},"type":"array"},"excludeFunctionIds":{"description":"Exclude these job functions (same codes as functionIds).","items":{"enum":["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26"],"type":"string"},"type":"array"},"excludeLocations":{"description":"Exclude people in any of these locations, by place name.","items":{"type":"string"},"type":"array"},"excludePastCompanies":{"description":"Exclude people who previously worked at any of these companies, by name.","items":{"type":"string"},"type":"array"},"excludePastJobTitles":{"description":"Exclude people who held any of these past job titles.","items":{"type":"string"},"type":"array"},"excludeSchools":{"description":"Exclude people who attended any of these schools, by name.","items":{"type":"string"},"type":"array"},"excludeSeniorityLevelIds":{"description":"Exclude these seniority levels (same codes as seniorityLevelIds).","items":{"enum":["100","110","120","130","200","210","220","300","310","320"],"type":"string"},"type":"array"},"firstNames":{"description":"Filter to people whose first name matches any of these.","items":{"type":"string"},"type":"array"},"functionIds":{"description":"Filter by job function. Codes: 1=Accounting, 2=Administrative, 3=Arts and Design, 4=Business Development, 5=Community and Social Services, 6=Consulting, 7=Education, 8=Engineering, 9=Entrepreneurship, 10=Finance, 11=Healthcare Services, 12=Human Resources, 13=Information Technology, 14=Legal, 15=Marketing, 16=Media and Communication, 17=Military and Protective Services, 18=Operations, 19=Product Management, 20=Program and Project Management, 21=Purchasing, 22=Quality Assurance, 23=Real Estate, 24=Research, 25=Sales, 26=Customer Success and Support.","items":{"enum":["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26"],"type":"string"},"type":"array"},"jobTitle":{"description":"Optional current job title filter (e.g. 'Software Engineer').","type":"string"},"lastNames":{"description":"Filter to people whose last name matches any of these.","items":{"type":"string"},"type":"array"},"limit":{"description":"Maximum number of full profiles (with email) to return (1-25, default 10). You are billed per profile returned, so a lower limit costs less.","maximum":25,"minimum":1,"type":"integer"},"location":{"description":"Optional location filter (e.g. 'San Francisco').","type":"string"},"pastCompanies":{"description":"Filter to people who previously worked at any of these companies, by name.","items":{"type":"string"},"type":"array"},"pastJobTitles":{"description":"Filter by a past job title the person held (e.g. ['Product Manager']).","items":{"type":"string"},"type":"array"},"profileLanguages":{"description":"Filter by the profile's primary language.","items":{"enum":["Arabic","English","Spanish","Portuguese","Chinese","French","Italian","Russian","German","Dutch","Turkish","Tagalog","Polish","Korean","Japanese","Malay","Norwegian","Danish","Romanian","Swedish","Bahasa Indonesia","Czech"],"type":"string"},"type":"array"},"query":{"description":"Search query for LinkedIn profiles: a role, name, or keywords (e.g. 'Marketing Manager').","type":"string"},"recentlyChangedJobs":{"description":"When true, only return people who recently changed jobs (a strong sales/recruiting signal).","type":"boolean"},"recentlyPostedOnLinkedIn":{"description":"When true, only return people who recently posted on LinkedIn (an activity signal).","type":"boolean"},"schools":{"description":"Filter to people who attended any of these schools, by name.","items":{"type":"string"},"type":"array"},"seniorityLevelIds":{"description":"Filter by seniority level. Codes: 100=In Training, 110=Entry Level, 120=Senior, 130=Strategic, 200=Entry Level Manager, 210=Experienced Manager, 220=Director, 300=Vice President, 310=CXO, 320=Owner/Partner.","items":{"enum":["100","110","120","130","200","210","220","300","310","320"],"type":"string"},"type":"array"},"yearsAtCurrentCompanyIds":{"description":"Filter by tenure at the current company. Codes: 1=Less than 1 year, 2=1 to 2 years, 3=3 to 5 years, 4=6 to 10 years, 5=More than 10 years.","items":{"enum":["1","2","3","4","5"],"type":"string"},"type":"array"},"yearsOfExperienceIds":{"description":"Filter by total years of experience. Codes: 1=Less than 1 year, 2=1 to 2 years, 3=3 to 5 years, 4=6 to 10 years, 5=More than 10 years.","items":{"enum":["1","2","3","4","5"],"type":"string"},"type":"array"}},"required":["query"],"title":"LinkedIn profile search + email input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The results wrapper, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Matched profile records, each with a discovered work email. Populated whenever the provider has data for the entity.","items":{"description":"A full LinkedIn profile: name, headline, location, about, current position, work experience, education, and skills, plus the profile URL, handle, id, and a discovered work email with deliverability.","properties":{"about":{"description":"Profile about / summary text.","type":"string"},"currentPosition":{"description":"Current role(s). Each entry is an open object with the position title, company, dates, and location; shape can vary by profile.","items":{"type":"object"},"type":"array"},"education":{"description":"Education history. Each entry is an open object with school, degree, and field of study; shape can vary by profile.","items":{"type":"object"},"type":"array"},"emails":{"description":"Discovered work email(s) for the member. Each entry is an open object with the email address plus deliverability signals (deliverable, disposable, catchAllDomain, validEmailServer, qualityScore, status); may be empty when no email could be verified. Populated whenever the provider has data for the entity.","items":{"type":"object"},"type":"array","x-anyapi-must-populate":true},"experience":{"description":"Full work history. Each entry is an open object with the position title, company, dates, and location; shape can vary by profile. Populated whenever the provider has data for the entity.","items":{"type":"object"},"type":"array","x-anyapi-must-populate":true},"firstName":{"description":"Member's first name.","type":"string"},"handle":{"description":"Public profile identifier (the vanity slug in the URL). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"headline":{"description":"Profile headline (the tagline under the name). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"LinkedIn member URN id for the profile.","type":"string"},"image":{"description":"Profile picture URL.","type":"string"},"lastName":{"description":"Member's last name.","type":"string"},"location":{"description":"Member's location as a single string (city, region, country).","type":"string"},"openToWork":{"description":"Whether the member has the Open to Work flag set.","type":"boolean"},"premium":{"description":"Whether the member has a LinkedIn Premium subscription.","type":"boolean"},"skills":{"description":"Listed skills. Each entry is an open object with the skill name and endorsement summary.","items":{"type":"object"},"type":"array"},"url":{"description":"Canonical LinkedIn profile URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when at least one profile was returned.","type":"boolean"}},"required":["found","data"],"title":"LinkedIn profile search + email output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"LinkedIn Profile Search + Email","tags":["linkedin"],"x-payment-info":{"price":{"currency":"USD","max":"0.305000","min":"0.080000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/linkedin.search_profiles_thin":{"post":{"description":"Cheap people search: name/handle, headline, VANITY profile URL, location. No full profile or email - for full profiles per hit use linkedin.search_profiles, add emails with linkedin.search_profiles_email.\n\n**Price:** \\$32.50 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"linkedin_search_profiles_thin","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"query":"recruiter"},"schema":{"additionalProperties":false,"example":{"query":"recruiter"},"properties":{"query":{"description":"Search query for LinkedIn profiles - a role, name, or keywords (e.g. 'Marketing Manager').","type":"string"}},"required":["query"],"title":"LinkedIn basic profile search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The results wrapper, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Matched profile records (basic fields only). Populated whenever the provider has data for the entity.","items":{"description":"A basic LinkedIn profile record: name, handle, headline, vanity profile URL, and location.","properties":{"handle":{"description":"Public profile identifier (the vanity slug in the URL). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"headline":{"description":"Profile headline (the tagline under the name). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"LinkedIn member URN id for the profile.","type":"string"},"image":{"description":"Profile picture URL.","type":"string"},"location":{"description":"Member's location as a single string (city, region, country).","type":"string"},"name":{"description":"Member's display name.","type":"string"},"url":{"description":"Canonical LinkedIn vanity profile URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when at least one profile was returned.","type":"boolean"}},"required":["found","data"],"title":"LinkedIn basic profile search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"LinkedIn Profile Search (basic)","tags":["linkedin"],"x-payment-info":{"price":{"amount":"0.032500","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/maps.contacts":{"post":{"description":"Search Google Maps for businesses and enrich each result with contact details (emails, phones, and social profiles from their websites), up to 20 records per request.\n\n**Price:** billed per result - \\$0.05 per 1,000 requests base + \\$4.50 per 1,000 results, capped at \\$90.05 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"maps_contacts","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"location":"Austin, TX","placeMinimumStars":"four","query":"coffee shop","website":"withWebsite"},"schema":{"additionalProperties":false,"example":{"limit":3,"location":"Austin, TX","placeMinimumStars":"four","query":"coffee shop","website":"withWebsite"},"properties":{"categoryFilterWords":{"description":"Optional list of Google Maps place-category names to keep; results are limited to places whose category matches one of these. Use lowercase category names as shown on Google Maps (e.g. [\"dentist\", \"orthodontist\"]). Omit to include all categories.","items":{"type":"string"},"type":"array"},"language":{"default":"en","description":"Two-letter language code for the results (e.g. en).","type":"string"},"limit":{"description":"Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.","maximum":20,"minimum":1,"type":"integer"},"location":{"description":"Free-text location to search in, ideally city plus country (e.g. Denver, USA).","type":"string"},"placeMinimumStars":{"description":"Only return places with at least this average rating: two (2+), twoAndHalf (2.5+), three (3+), threeAndHalf (3.5+), four (4+), or fourAndHalf (4.5+). Places with no reviews are excluded. Omit for no rating filter.","enum":["two","twoAndHalf","three","threeAndHalf","four","fourAndHalf"],"type":"string"},"query":{"description":"What you would type in the Google Maps search bar (e.g. dentist).","type":"string"},"website":{"description":"Filter places by whether they list a website: allPlaces (default), withWebsite (only places that have a website), or withoutWebsite (only places without one). Contact enrichment pulls emails and social profiles from a place's website, so withWebsite targets leads that can be enriched.","enum":["allPlaces","withWebsite","withoutWebsite"],"type":"string"}},"required":["query","location"],"title":"Google Maps contacts input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The result wrapper, or null when nothing matched.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Matching business records, each enriched with contact details scraped from the business website. Populated whenever the provider has data for the entity.","items":{"properties":{"address":{"description":"Full formatted street address.","type":"string"},"category":{"description":"Primary business category.","type":"string"},"cid":{"description":"Google customer/place id (cid).","type":"string"},"city":{"description":"City the business is in.","type":"string"},"countryCode":{"description":"Two-letter country code.","type":"string"},"emails":{"description":"Email addresses scraped from the business website.","items":{"type":"string"},"type":"array"},"facebooks":{"description":"Facebook profile URLs found on the business website.","items":{"type":"string"},"type":"array"},"image":{"description":"Primary business photo URL.","type":"string"},"instagrams":{"description":"Instagram profile URLs found on the business website.","items":{"type":"string"},"type":"array"},"latitude":{"description":"Latitude of the business in decimal degrees.","type":"number"},"linkedIns":{"description":"LinkedIn profile URLs found on the business website.","items":{"type":"string"},"type":"array"},"longitude":{"description":"Longitude of the business in decimal degrees.","type":"number"},"name":{"description":"Business name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"phone":{"description":"Business phone number in E.164 format, when listed on Google Maps.","type":"string"},"phones":{"description":"Additional phone numbers scraped from the business website.","items":{"type":"string"},"type":"array"},"placeId":{"description":"Google Maps place id (stable identifier for the business). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"postalCode":{"description":"Postal code of the business.","type":"string"},"rating":{"description":"Average star rating out of 5.","type":"number"},"reviewCount":{"description":"Total number of reviews.","type":"number"},"state":{"description":"State or region the business is in.","type":"string"},"tiktoks":{"description":"TikTok profile URLs found on the business website.","items":{"type":"string"},"type":"array"},"twitters":{"description":"X/Twitter profile URLs found on the business website.","items":{"type":"string"},"type":"array"},"url":{"description":"Canonical Google Maps URL for the business. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"website":{"description":"The business website URL, when listed.","type":"string"},"youtubes":{"description":"YouTube channel URLs found on the business website.","items":{"type":"string"},"type":"array"}},"required":["placeId","name","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when the search returned at least one matching business.","type":"boolean"}},"required":["found","data"],"title":"Google Maps contacts output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Google Maps Contacts","tags":["maps"],"x-payment-info":{"price":{"currency":"USD","max":"0.090050","min":"0.000050","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/maps.place":{"post":{"description":"Look up a place on Google Maps by name or search query (optionally scoped to a location) and get the best-matching place with available address, contact, rating, and coordinate details as normalized JSON.\n\n**Price:** \\$2.97 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"maps_place","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"location":"San Francisco, CA","query":"Blue Bottle Coffee","website":"withWebsite"},"schema":{"additionalProperties":false,"example":{"location":"San Francisco, CA","query":"Blue Bottle Coffee","website":"withWebsite"},"properties":{"categoryFilterWords":{"description":"Optional list of Google Maps place-category names to keep; the match is limited to a place whose category is one of these. Use lowercase category names as shown on Google Maps (e.g. [\"coffee shop\"]). Omit to allow any category.","items":{"type":"string"},"type":"array"},"language":{"default":"en","description":"Two-letter language code for the result details (e.g. en).","type":"string"},"location":{"description":"Optional free-text location to scope the search, ideally city plus state or country (e.g. San Francisco, CA). Narrows the query to the best match in that area.","type":"string"},"placeMinimumStars":{"description":"Only match a place with at least this average rating: two (2+), twoAndHalf (2.5+), three (3+), threeAndHalf (3.5+), four (4+), or fourAndHalf (4.5+). Places with no reviews are excluded. Omit for no rating filter.","enum":["two","twoAndHalf","three","threeAndHalf","four","fourAndHalf"],"type":"string"},"query":{"description":"The business name or search text to look up, as you would type it into the Google Maps search bar (e.g. Blue Bottle Coffee).","type":"string"},"website":{"description":"Filter by whether the place lists a website: allPlaces (default), withWebsite (only if it has a website), or withoutWebsite (only if it has none).","enum":["allPlaces","withWebsite","withoutWebsite"],"type":"string"}},"required":["query"],"title":"Google Maps place lookup input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"The best-matching place for the query, with available address, contact, category, rating, opening-hours, and coordinate details. Up to one element (empty when nothing matched). Populated whenever the provider has data for the entity.","items":{"properties":{"address":{"description":"Full formatted street address. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"category":{"description":"Primary Google Maps category (e.g. Coffee shop). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"city":{"type":"string"},"countryCode":{"description":"Two-letter country code.","type":"string"},"hours":{"description":"Opening hours by day: each element is an object with the day name and its hours.","items":{"type":"object"},"type":"array"},"image":{"description":"URL of the primary place photo.","type":"string"},"latitude":{"description":"Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"longitude":{"description":"Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"name":{"description":"Business or place name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"neighborhood":{"type":"string"},"permanentlyClosed":{"description":"Whether the place is permanently closed.","type":"boolean"},"phone":{"description":"Formatted phone number.","type":"string"},"placeId":{"description":"Google Maps place id. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"plusCode":{"description":"Google Plus Code for the location.","type":"string"},"postalCode":{"type":"string"},"priceLevel":{"description":"Price level indicator (e.g. a price range).","type":"string"},"rating":{"description":"Average star rating.","type":"number"},"reviewsCount":{"description":"Total number of reviews.","type":"integer"},"state":{"description":"State or region name.","type":"string"},"street":{"description":"Street portion of the address.","type":"string"},"url":{"description":"Google Maps URL for the place. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"website":{"description":"Business website URL.","type":"string"}},"required":["name","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Google Maps place lookup output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Google Maps Place Lookup","tags":["maps"],"x-payment-info":{"price":{"currency":"USD","max":"0.009000","min":"0.002970","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/maps.reviews":{"post":{"description":"Fetch up to 100 Google Maps reviews for a place by place ID, sorted the way you need, in one normalized response.\n\n**Price:** billed per result - \\$0.05 per 1,000 requests base + \\$0.40 per 1,000 results, capped at \\$40.05 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"maps_reviews","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"placeId":"ChIJN1t_tDeuEmsRUsoyG83frY4","postedLimit":"year"},"schema":{"additionalProperties":false,"example":{"limit":3,"placeId":"ChIJN1t_tDeuEmsRUsoyG83frY4","postedLimit":"year"},"properties":{"language":{"default":"en","description":"Two-letter language code for the review details (e.g. en).","type":"string"},"limit":{"description":"Maximum number of results to return (1-100, default 100). You are billed per result returned, so a lower limit costs less.","maximum":100,"minimum":1,"type":"integer"},"placeId":{"description":"The Google Maps place ID to fetch reviews for (e.g. ChIJj61dQgK6j4AR4GeTYWZsKWw).","type":"string"},"postedLimit":{"description":"Only return reviews posted within this window: 24h (past 24 hours), week (past 7 days), month (past month), or year (past year). Omit for no recency filter.","enum":["24h","week","month","year"],"type":"string"},"reviewsFilterString":{"description":"Only return reviews whose text contains this keyword or phrase (case-insensitive). Omit to return all reviews (e.g. parking).","type":"string"},"sort":{"default":"newest","description":"Order in which reviews are returned (e.g. newest).","enum":["newest","mostRelevant","highestRanking","lowestRanking"],"type":"string"}},"required":["placeId"],"title":"Google Maps reviews input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The reviews result, or null when not found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Review records: reviewer, star rating, review text (empty when the reviewer left only a rating), publish date, likes, and owner response where present. Populated whenever the provider has data for the entity.","items":{"properties":{"author":{"description":"Reviewer display name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"isLocalGuide":{"description":"Whether the reviewer is a Google Local Guide.","type":"boolean"},"likes":{"description":"Number of likes on the review.","type":"integer"},"origin":{"description":"Source of the review (e.g. Google).","type":"string"},"ownerResponse":{"description":"Owner's reply text; empty when there is none.","type":"string"},"ownerResponseAt":{"description":"ISO 8601 timestamp of the owner's reply; empty when there is none.","type":"string"},"placeId":{"description":"Google Maps place id the review belongs to. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"publishedAgo":{"description":"Human-relative publish time (e.g. '7 hours ago').","type":"string"},"rating":{"description":"Star rating the reviewer gave (1-5).","type":"number"},"reviewId":{"description":"Stable Google review id. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"reviewerId":{"description":"Stable Google id of the reviewer.","type":"string"},"reviewerReviewsCount":{"description":"Total number of reviews the reviewer has written.","type":"integer"},"text":{"description":"Review text; empty string when the reviewer left only a star rating.","type":"string"},"url":{"description":"Direct URL to the review on Google Maps. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["reviewId"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"Whether reviews were found.","type":"boolean"}},"required":["found","data"],"title":"Google Maps reviews output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Google Maps Reviews","tags":["maps"],"x-payment-info":{"price":{"currency":"USD","max":"0.040050","min":"0.000050","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/maps.search":{"post":{"description":"Search Google Maps for places matching a query and location: up to 20 normalized place records with ratings, addresses, and contact basics per request.\n\n**Price:** \\$2.97 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"maps_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"location":"Austin, TX","placeMinimumStars":"four","query":"coffee","website":"withWebsite"},"schema":{"additionalProperties":false,"example":{"limit":3,"location":"Austin, TX","placeMinimumStars":"four","query":"coffee","website":"withWebsite"},"properties":{"categoryFilterWords":{"description":"Optional list of Google Maps place-category names to keep; results are limited to places whose category matches one of these. Use lowercase category names as shown on Google Maps (e.g. [\"coffee shop\", \"restaurant\"]). Omit to include all categories.","items":{"type":"string"},"type":"array"},"language":{"default":"en","description":"Two-letter language code for the results (e.g. en).","type":"string"},"limit":{"description":"Maximum number of results to return (1-20, default 20). Pricing depends on the selected provider and may be flat per request.","maximum":20,"minimum":1,"type":"integer"},"location":{"description":"Free-text location to search in, ideally city plus country (e.g. Austin, USA).","minLength":1,"type":"string"},"placeMinimumStars":{"description":"Only return places with at least this average rating: two (2+), twoAndHalf (2.5+), three (3+), threeAndHalf (3.5+), four (4+), or fourAndHalf (4.5+). Places with no reviews are excluded. Omit for no rating filter.","enum":["two","twoAndHalf","three","threeAndHalf","four","fourAndHalf"],"type":"string"},"query":{"description":"What you would type in the Google Maps search bar (e.g. coffee shop).","type":"string"},"website":{"description":"Filter places by whether they list a website: allPlaces (default), withWebsite (only places that have a website), or withoutWebsite (only places without one).","enum":["allPlaces","withWebsite","withoutWebsite"],"type":"string"}},"required":["query","location"],"title":"Google Maps search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The result wrapper, or null when nothing matched.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Matching Google Maps place records. Populated whenever the provider has data for the entity.","items":{"properties":{"address":{"description":"Full formatted street address.","type":"string"},"category":{"description":"Primary place category (e.g. Coffee shop).","type":"string"},"cid":{"description":"Google customer/place id (cid).","type":"string"},"city":{"description":"City the place is in.","type":"string"},"countryCode":{"description":"Two-letter country code.","type":"string"},"image":{"description":"Primary place photo URL.","type":"string"},"latitude":{"description":"Latitude of the place in decimal degrees.","type":"number"},"longitude":{"description":"Longitude of the place in decimal degrees.","type":"number"},"name":{"description":"Place name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"permanentlyClosed":{"description":"True when the place is marked permanently closed.","type":"boolean"},"phone":{"description":"Business phone number in E.164 format, when listed.","type":"string"},"placeId":{"description":"Google Maps place id (stable identifier for the place). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"postalCode":{"description":"Postal code of the place.","type":"string"},"priceLevel":{"description":"Relative price level indicator (e.g. $, $10-20).","type":"string"},"rating":{"description":"Average star rating out of 5.","type":"number"},"reviewCount":{"description":"Total number of reviews.","type":"number"},"state":{"description":"State or region the place is in.","type":"string"},"street":{"description":"Street line of the address.","type":"string"},"url":{"description":"Canonical Google Maps URL for the place. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"website":{"description":"The place's own website URL, when listed.","type":"string"}},"required":["placeId","name","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when the search returned at least one matching place.","type":"boolean"}},"required":["found","data"],"title":"Google Maps search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Google Maps Search","tags":["maps"],"x-payment-info":{"price":{"currency":"USD","max":"0.105050","min":"0.002970","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/pandaexpress.locations":{"post":{"description":"Find Panda Express restaurants near a latitude/longitude, sorted by distance, with address, phone, hours availability, and pickup/delivery support.\n\n**Price:** \\$0.90 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"pandaexpress_locations","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"latitude":34.0522,"limit":5,"longitude":-118.2437},"schema":{"additionalProperties":false,"example":{"latitude":34.0522,"limit":5,"longitude":-118.2437},"properties":{"latitude":{"description":"Latitude of the search center.","maximum":90,"minimum":-90,"type":"number"},"limit":{"description":"Maximum number of restaurants to return (1-50, default 10).","maximum":50,"minimum":1,"type":"integer"},"longitude":{"description":"Longitude of the search center.","maximum":180,"minimum":-180,"type":"number"},"radius":{"description":"Search radius in miles (default 10).","maximum":100,"minimum":1,"type":"integer"}},"required":["latitude","longitude"],"title":"Panda Express locations input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"restaurants":{"description":"Nearby Panda Express restaurants, nearest first. Populated whenever the provider has data for the entity.","items":{"properties":{"address":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"canDeliver":{"type":"boolean"},"canPickup":{"type":"boolean"},"city":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"distanceMiles":{"type":"number"},"id":{"description":"Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"isOpen":{"type":"boolean"},"latitude":{"description":"Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"longitude":{"description":"Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"name":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"phone":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"state":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"zip":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","name","address","city","state","zip","phone","latitude","longitude","distanceMiles","canPickup","canDeliver","isOpen"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["restaurants"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Panda Express locations output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Panda Express Locations","tags":["pandaexpress"],"x-payment-info":{"price":{"amount":"0.000900","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/pandaexpress.menu":{"post":{"description":"Get the live menu for a Panda Express restaurant by id: categories with item names, descriptions, and USD prices. Pair with Panda Express Locations to resolve a restaurant id.\n\n**Price:** \\$0.90 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"pandaexpress_menu","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"restaurantId":"112551"},"schema":{"additionalProperties":false,"example":{"restaurantId":"112551"},"properties":{"restaurantId":{"description":"Panda Express restaurant id (the `id` from Panda Express Locations).","type":"string"}},"required":["restaurantId"],"title":"Panda Express menu input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"categories":{"description":"Menu categories in display order. Populated whenever the provider has data for the entity.","items":{"description":"Populated whenever the provider has data for the entity.","properties":{"items":{"items":{"properties":{"calories":{"description":"Base calories when published by the restaurant, else 0.","type":"integer"},"description":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"name":{"type":"string"},"priceUsd":{"description":"Item price in USD (0 for items priced only via size/option selection).","type":"number"}},"required":["name","description","priceUsd","calories"],"type":"object"},"type":"array"},"name":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["name","items"],"type":"object","x-anyapi-must-populate":true},"type":"array","x-anyapi-must-populate":true}},"required":["categories"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Panda Express menu output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Panda Express Menu","tags":["pandaexpress"],"x-payment-info":{"price":{"amount":"0.000900","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/pandaexpress.nutrition":{"post":{"description":"Look up official Panda Express nutrition facts by item name: serving size, calories, fat, cholesterol, sodium, carbs, fiber, sugars, and protein.\n\n**Price:** \\$6.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"pandaexpress_nutrition","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"query":"orange chicken"},"schema":{"additionalProperties":false,"example":{"query":"orange chicken"},"properties":{"query":{"description":"Menu item name (or substring) to look up, e.g. \"orange chicken\" or \"chow mein\".","minLength":2,"type":"string"}},"required":["query"],"title":"Panda Express nutrition input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Matching menu items with official nutrition facts. Populated whenever the provider has data for the entity.","items":{"properties":{"calories":{"type":"number"},"cholesterolMg":{"type":"number"},"dietaryFiberG":{"type":"number"},"name":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"proteinG":{"type":"number"},"saturatedFatG":{"type":"number"},"servingSizeOz":{"type":"number"},"sodiumMg":{"type":"number"},"sugarsG":{"type":"number"},"totalCarbG":{"type":"number"},"totalFatG":{"type":"number"},"transFatG":{"type":"number"}},"required":["name","servingSizeOz","calories","totalFatG","saturatedFatG","transFatG","cholesterolMg","sodiumMg","totalCarbG","dietaryFiberG","sugarsG","proteinG"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Panda Express nutrition output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Panda Express Nutrition","tags":["pandaexpress"],"x-payment-info":{"price":{"amount":"0.006000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/person.skip_trace":{"post":{"description":"Skip-trace a person in the US by name, address, phone, or email and get back identity, address, and contact records in normalized JSON.\n\n**Price:** billed per result - \\$7.00 per 1,000 results, capped at \\$7.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"person_skip_trace","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"address":"123 Main St, Austin, TX 78701","name":"John Smith"},"schema":{"additionalProperties":false,"example":{"address":"123 Main St, Austin, TX 78701","name":"John Smith"},"properties":{"address":{"description":"Street address with city/state/zip.","type":"string"},"email":{"description":"Email address to reverse-trace (e.g. john.smith@example.com).","type":"string"},"name":{"description":"Full name of the person to trace. Provide at least one of name, address, phone, or email.","type":"string"},"phone":{"description":"Phone number to reverse-trace (e.g. 415-555-2671).","type":"string"}},"title":"Skip Trace input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The results wrapper, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Matched person records with identity, address, and contact details. Populated whenever the provider has data for the entity.","items":{"description":"A skip-trace match: name, age, current and past addresses, phone numbers, email addresses, relatives, and associates.","properties":{"addressLocality":{"description":"Current city.","type":"string"},"addressRegion":{"description":"Current state.","type":"string"},"age":{"description":"Reported age.","type":"string"},"associates":{"description":"Reported associates. Each entry is an open object with name and age.","items":{"type":"object"},"type":"array"},"born":{"description":"Reported birth month and year.","type":"string"},"county":{"description":"Current county.","type":"string"},"emails":{"description":"Up to five known email addresses, most-recent first. Absent slots are empty strings.","properties":{"email1":{"type":"string"},"email2":{"type":"string"},"email3":{"type":"string"},"email4":{"type":"string"},"email5":{"type":"string"}},"type":"object"},"firstName":{"description":"First name of the matched person.","type":"string"},"lastName":{"description":"Last name of the matched person.","type":"string"},"location":{"description":"Current city and state (e.g. Brook Park, OH).","type":"string"},"phones":{"description":"Up to five known phone numbers with line type, most-recent first. Absent slots are empty strings.","properties":{"phone1":{"type":"string"},"phone1Type":{"type":"string"},"phone2":{"type":"string"},"phone2Type":{"type":"string"},"phone3":{"type":"string"},"phone3Type":{"type":"string"},"phone4":{"type":"string"},"phone4Type":{"type":"string"},"phone5":{"type":"string"},"phone5Type":{"type":"string"}},"type":"object"},"postalCode":{"description":"Current ZIP code.","type":"string"},"previousAddresses":{"description":"Prior addresses. Each entry is an open object with street, locality, region, postal code, county, and timespan.","items":{"type":"object"},"type":"array"},"relatives":{"description":"Reported relatives. Each entry is an open object with name and age.","items":{"type":"object"},"type":"array"},"streetAddress":{"description":"Current street address.","type":"string"},"url":{"description":"Source record URL for the matched person. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when at least one matched person record was returned.","type":"boolean"}},"required":["found","data"],"title":"Skip Trace output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Skip Trace","tags":["person"],"x-payment-info":{"price":{"currency":"USD","max":"0.007000","min":"0.000000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/pinterest.search":{"post":{"description":"Search Pinterest by keyword and get pin, video, board, or profile results with titles, images, and links.\n\n**Price:** \\$3.25 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"pinterest_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"query":"home decor"},"schema":{"additionalProperties":false,"example":{"limit":3,"query":"home decor"},"properties":{"limit":{"description":"Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.","maximum":20,"minimum":1,"type":"integer"},"query":{"description":"Keyword, topic, brand, or theme to search Pinterest for (e.g. mid-century living room).","type":"string"},"type":{"default":"all-pins","description":"Kind of results to return: all pins, only video pins, boards, or profiles (e.g. videos).","enum":["all-pins","videos","boards","profiles"],"type":"string"}},"required":["query"],"title":"Pinterest search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Matching Pinterest records: pin or board title, description, image/video URL, creator, and link. Populated whenever the provider has data for the entity.","items":{"properties":{"id":{"type":"string"},"title":{"type":"string"},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","url","title"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Pinterest search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Pinterest Search","tags":["pinterest"],"x-payment-info":{"price":{"amount":"0.003250","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/playstore.reviews":{"post":{"description":"Fetch Google Play reviews for any Android app by package name or store URL: ratings, review text, dates, and helpfulness votes.\n\n**Price:** billed per result - \\$0.11 per 1,000 results, capped at \\$11.00 per 1,000 requests.\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"playstore_reviews","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"appId":"com.whatsapp","limit":3},"schema":{"additionalProperties":false,"example":{"appId":"com.whatsapp","limit":3},"properties":{"appId":{"description":"Android app package name or full Google Play store URL (e.g. com.supercell.brawlstars).","type":"string"},"appVersion":{"description":"Only return reviews left on these app versions (e.g. [\"2.24.1\", \"2.24.2\"]).","items":{"type":"string"},"type":"array"},"deviceType":{"default":"mobile","description":"Only return reviews from this device type (e.g. \"tablet\"); defaults to mobile.","enum":["mobile","tablet","chromebook"],"type":"string"},"endDate":{"description":"Only return reviews on or before this date, inclusive, in YYYY-MM-DD format (e.g. 2026-06-30).","type":"string"},"keywords":{"description":"Only return reviews whose text contains one of these keywords (e.g. [\"crash\", \"login\"]).","items":{"type":"string"},"type":"array"},"languages":{"description":"Only return reviews in these ISO 639-1 languages (e.g. [\"en\", \"es\"]).","items":{"type":"string"},"type":"array"},"limit":{"description":"Maximum number of results to return (1-100, default 100). You are billed per result returned, so a lower limit costs less.","maximum":100,"minimum":1,"type":"integer"},"rating":{"description":"Only return reviews with this exact star rating from 1 to 5 (e.g. 1); omit for all ratings.","type":"integer"},"recentDays":{"description":"Only return reviews from the last N days (e.g. 30); omit for no time limit.","minimum":1,"type":"integer"},"sortBy":{"default":"mostRelevant","description":"Review ordering: mostRelevant, newest, or rating (e.g. newest).","type":"string"}},"required":["appId"],"title":"Google Play reviews input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The result wrapper, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Review records: star rating, review text, reviewer name, app version, helpfulness votes, and review date. Populated whenever the provider has data for the entity.","items":{"properties":{"author":{"description":"Reviewer display name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. When the review was posted. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"helpfulVotes":{"description":"Number of helpful votes on the review.","type":"integer"},"id":{"description":"Review identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"rating":{"description":"Star rating, 1 to 5. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"text":{"description":"Review body text. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Review title, when the store provides one.","type":"string"},"version":{"description":"App version the review was left on.","type":"string"}},"required":["rating","text"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when at least one review record was returned.","type":"boolean"}},"required":["found","data"],"title":"Google Play reviews output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Google Play Reviews","tags":["playstore"],"x-payment-info":{"price":{"currency":"USD","max":"0.016250","min":"0.000000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/polymarket.markets":{"post":{"description":"Discover Polymarket prediction markets (question, outcome prices, volume, liquidity, and end dates) by keyword or sorted by activity, as normalized JSON.\n\n**Price:** billed per result - \\$105.00 per 1,000 requests base + \\$0.60 per 1,000 results, capped at \\$120.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"polymarket_markets","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":10,"query":"election"},"schema":{"additionalProperties":false,"example":{"limit":10,"query":"election"},"properties":{"limit":{"description":"Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.","maximum":25,"minimum":1,"type":"integer"},"query":{"description":"Search term for markets (e.g. election, bitcoin, super bowl).","type":"string"},"sortBy":{"default":"volume_24hr","description":"How discovered markets are ordered before results are returned (e.g. volume_24hr for recent momentum).","enum":["volume_24hr","volume","liquidity","start_date","ending_soon","competitive"],"type":"string"},"status":{"default":"active","description":"Return \"active\" markets for current prices and volume, or \"resolved\" markets for historical outcomes.","enum":["active","resolved"],"type":"string"}},"required":["query"],"title":"Polymarket markets input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The result wrapper, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Prediction-market records: market question, outcomes with current prices, volume, liquidity, and end date. Populated whenever the provider has data for the entity.","items":{"properties":{"endsUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. When the market resolves/ends.","type":"number"},"eventTitle":{"description":"Title of the parent event grouping this market.","type":"string"},"id":{"description":"Polymarket market identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"Event image URL.","type":"string"},"liquidityUsd":{"description":"Available liquidity in USD.","type":"number"},"outcomes":{"description":"Market outcomes with their current implied prices.","items":{"properties":{"name":{"description":"Outcome label, e.g. Yes or No.","type":"string"},"price":{"description":"Current implied probability price for the outcome (0 to 1).","type":"number"}},"type":"object"},"type":"array"},"status":{"description":"Market status, e.g. active or closed.","type":"string"},"title":{"description":"The market question. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Polymarket URL for the market event. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"volume24hUsd":{"description":"Traded volume in USD over the past 24 hours.","type":"number"},"volumeUsd":{"description":"Total traded volume in USD.","type":"number"}},"required":["id","url","title"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when at least one market record was returned.","type":"boolean"}},"required":["found","data"],"title":"Polymarket markets output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Polymarket Markets","tags":["polymarket"],"x-payment-info":{"price":{"currency":"USD","max":"0.120000","min":"0.105000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/realtor.search":{"post":{"description":"Search Realtor.com listings by location with optional price, property-type, beds/baths, listing-status, and keyword filters and get property records (price, address, beds, baths) as normalized JSON.\n\n**Price:** billed per result - \\$5.00 per 1,000 requests base + \\$1.50 per 1,000 results, capped at \\$42.50 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"realtor_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"bedsMin":4,"limit":3,"location":"Austin, TX","propertyTypes":["single_family"],"searchStatuses":["pending"]},"schema":{"additionalProperties":false,"example":{"bedsMin":4,"limit":3,"location":"Austin, TX","propertyTypes":["single_family"],"searchStatuses":["pending"]},"properties":{"bathsMin":{"description":"Minimum number of bathrooms (e.g. 2).","minimum":0,"type":"integer"},"bedsMin":{"description":"Minimum number of bedrooms (e.g. 3).","minimum":0,"type":"integer"},"keyword":{"description":"Free-text keyword that must appear in the listing description (e.g. 'pool').","type":"string"},"limit":{"description":"Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.","maximum":25,"minimum":1,"type":"integer"},"location":{"description":"City, ZIP code, neighborhood or state to search (e.g. Las Vegas, NV).","type":"string"},"priceMax":{"description":"Maximum listing price in USD (e.g. 750000).","minimum":0,"type":"integer"},"priceMin":{"description":"Minimum listing price in USD (e.g. 250000).","minimum":0,"type":"integer"},"propertyTypes":{"description":"Filter by one or more property types; omit for all types (e.g. [\"single_family\", \"townhomes\"]).","items":{"enum":["single_family","townhomes","condo_townhome","multi_family","land","farm","manufactured","mobile","apartment","coop","duplex_triplex"],"type":"string"},"type":"array"},"searchMode":{"default":"for_sale","description":"Listing type to search: for_sale or sold (e.g. for_sale).","enum":["for_sale","sold"],"type":"string"},"searchStatuses":{"description":"Listing statuses to include in for_sale mode; omit for active For Sale + Ready to Build. Ignored in sold mode (e.g. [\"for_sale\", \"pending\"]).","items":{"enum":["for_sale","ready_to_build","pending","coming_soon","contingent"],"type":"string"},"type":"array"}},"required":["location"],"title":"Realtor.com search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The result wrapper, or null when nothing matched.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Matching Realtor.com property listing records. Populated whenever the provider has data for the entity.","items":{"properties":{"addressLine":{"description":"Street address line of the property.","type":"string"},"baths":{"description":"Consolidated bathroom count (e.g. \"3.5\" for three full and one half bath).","type":"string"},"beds":{"description":"Number of bedrooms.","type":"number"},"city":{"description":"City the property is in.","type":"string"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"daysOnMarket":{"description":"Number of days the listing has been on the market.","type":"number"},"image":{"description":"Primary listing photo URL.","type":"string"},"latitude":{"description":"Latitude of the property in decimal degrees.","type":"number"},"listingId":{"description":"Realtor.com listing id for this specific listing of the property.","type":"string"},"longitude":{"description":"Longitude of the property in decimal degrees.","type":"number"},"lotSqft":{"description":"Lot size in square feet.","type":"number"},"postalCode":{"description":"Postal (ZIP) code of the property.","type":"string"},"price":{"description":"Current list price in US dollars.","type":"number"},"pricePerSqft":{"description":"List price per square foot in US dollars.","type":"number"},"propertyId":{"description":"Realtor.com property id (stable identifier for the listing). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"propertyType":{"description":"Property type (e.g. single_family, condos, townhomes).","type":"string"},"sqft":{"description":"Interior living area in square feet.","type":"number"},"state":{"description":"Two-letter state code the property is in.","type":"string"},"status":{"description":"Display listing status, including ready-to-build, pending, contingent, and coming-soon sub-statuses when present.","enum":["for_sale","ready_to_build","sold","pending","contingent","coming_soon"],"type":"string"},"title":{"description":"Human-readable street address line used as the listing title.","type":"string"},"url":{"description":"Canonical Realtor.com listing detail page URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"yearBuilt":{"description":"Year the property was built.","type":"number"}},"required":["propertyId","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when the search returned at least one matching listing.","type":"boolean"}},"required":["found","data"],"title":"Realtor.com search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Realtor.com Search","tags":["realtor"],"x-payment-info":{"price":{"currency":"USD","max":"0.042500","min":"0.005000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/reddit.post":{"post":{"description":"Fetch a single Reddit post by URL, including its full body text, score, comment count, upvote ratio, and subreddit, as normalized JSON.\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 3 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"reddit_post","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.reddit.com/r/IAmA/comments/z1c9z/i_am_barack_obama_president_of_the_united_states/"},"schema":{"additionalProperties":false,"example":{"url":"https://www.reddit.com/r/IAmA/comments/z1c9z/i_am_barack_obama_president_of_the_united_states/"},"properties":{"url":{"description":"Full Reddit post URL in the /r/\u003csubreddit\u003e/comments/\u003cid\u003e/\u003cslug\u003e/ form, e.g. \"https://www.reddit.com/r/IAmA/comments/z1c9z/i_am_barack_obama_president_of_the_united_states/\". The short \"reddit.com/comments/\u003cid\u003e\" form is not accepted.","minLength":1,"type":"string"}},"required":["url"],"title":"Reddit post input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The post record, or null when nothing was found.","oneOf":[{"type":"null"},{"properties":{"author":{"description":"Author username, without the u/ prefix. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"body":{"description":"The post's own body text (selftext), as Markdown. Empty for link posts, which carry no body. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"id":{"description":"Reddit post ID (base-36, without the t3_ prefix). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"Preview image for the post, when Reddit generated one. Reddit signs this URL and it is time-limited, so fetch it promptly rather than storing it; the query string carries the signature and must be kept intact. Empty when the post has no preview image.","type":"string"},"isNsfw":{"description":"True when the post is marked NSFW (over 18).","type":"boolean"},"numComments":{"description":"Total number of comments on the post.","type":"integer"},"permalink":{"description":"Canonical reddit.com thread path for the post (e.g. \"/r/golang/comments/abc123/...\"). Differs from url, which is the destination link. Empty if the upstream omits it. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"score":{"description":"Net score (upvotes minus downvotes) at fetch time.","type":"integer"},"subreddit":{"description":"Subreddit name, without the r/ prefix. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Post title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"upvoteRatio":{"description":"Fraction of votes that are upvotes, between 0 and 1. Zero when the upstream does not report it.","type":"number"},"url":{"description":"The post's destination link (the external URL for link posts, or the thread URL for self posts). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","title","author","score","numComments","url","permalink","createdUtc","subreddit"],"type":"object"}]},"found":{"description":"True when the post was found; false when the lookup returned nothing.","type":"boolean"}},"required":["found","data"],"title":"Reddit post output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Reddit Post","tags":["reddit"],"x-payment-info":{"price":{"currency":"USD","max":"0.002040","min":"0.001000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/reddit.post_comments":{"post":{"description":"List the top-level comments on a Reddit post by URL (author, body, score, timestamp).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"reddit_post_comments","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.reddit.com/r/IAmA/comments/z1c9z/i_am_barack_obama_president_of_the_united_states/"},"schema":{"additionalProperties":false,"example":{"url":"https://www.reddit.com/r/IAmA/comments/z1c9z/i_am_barack_obama_president_of_the_united_states/"},"properties":{"cursor":{"description":"Cursor from a previous response for more comments.","type":"string"},"url":{"description":"Full Reddit post URL.","type":"string"}},"required":["url"],"title":"Reddit post comments input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"comments":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"author":{"description":"Commenter username, without the u/ prefix. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"body":{"description":"Comment text, as Markdown. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"id":{"description":"Reddit comment ID (base-36, without the t1_ prefix). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Permalink to the comment on reddit.com. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","author","body","url","createdUtc"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"nextCursor":{"description":"Cursor for the next page of comments; pass it back as the `cursor` input to fetch the following page. Empty string when there are no more comments.","type":"string"}},"required":["comments","nextCursor"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Reddit post comments output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Reddit Post Comments","tags":["reddit"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/reddit.post_transcript":{"post":{"description":"Extract the spoken transcript from a Reddit video post by URL.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"reddit_post_transcript","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.reddit.com/r/youseeingthisshit/comments/1oiu9xm/"},"schema":{"additionalProperties":false,"example":{"url":"https://www.reddit.com/r/youseeingthisshit/comments/1oiu9xm/"},"properties":{"language":{"description":"Optional two-letter language code (defaults to en).","type":"string"},"url":{"description":"Reddit post URL or direct v.redd.it video URL to transcribe.","type":"string"}},"required":["url"],"title":"Reddit Post Transcript input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"language":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"postId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"transcript":{"type":"string"},"transcriptNotAvailable":{"type":"boolean"}},"required":["postId","language","transcript","transcriptNotAvailable"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Reddit Post Transcript output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Reddit Post Transcript","tags":["reddit"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/reddit.profile":{"post":{"description":"Fetch a Reddit user's public profile (karma split, post and comment counts, bio, avatar, account age) by username.\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"reddit_profile","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"username":"spez"},"schema":{"additionalProperties":false,"example":{"username":"spez"},"properties":{"username":{"description":"Reddit username, without the u/ prefix. Example: \"spez\".","minLength":1,"type":"string"}},"required":["username"],"title":"Reddit profile input","type":"object","x-aliases":{"handle":"username"}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The profile record, or null when nothing was found.","oneOf":[{"type":"null"},{"properties":{"avatarUrl":{"description":"URL of the profile avatar image, with sizing and signing query params stripped. Populated whenever the provider has data for the entity.","format":"uri","type":"string","x-anyapi-must-populate":true},"bio":{"description":"Public profile description text. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"commentKarma":{"description":"Karma earned from comments. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"comments":{"description":"Number of comments the account has contributed. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"displayName":{"description":"Profile display title. Reddit defaults it to the username when the account has not set one. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"employee":{"description":"True when the account belongs to a Reddit employee.","type":"boolean"},"followers":{"description":"Number of profile subscribers. Reddit reports 0 for accounts that do not expose a follower count.","type":"integer"},"id":{"description":"Reddit account ID (base-36, without the t2_ prefix). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"karma":{"description":"Total karma across the account, as Reddit reports it. The postKarma and commentKarma fields below are the split it is composed of. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"nsfw":{"description":"True when the profile is marked NSFW (over 18).","type":"boolean"},"postKarma":{"description":"Karma earned from posts. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"posts":{"description":"Number of posts the account has contributed. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"profileUrl":{"description":"Absolute reddit.com URL of the profile page. Populated whenever the provider has data for the entity.","format":"uri","type":"string","x-anyapi-must-populate":true},"trophies":{"description":"Number of trophies unlocked in the account's trophy case. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"username":{"description":"Account username, without the u/ prefix. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"verified":{"description":"True when the account is verified by Reddit.","type":"boolean"}},"required":["id","username"],"type":"object"}]},"found":{"description":"True when the account was found; false when the lookup returned nothing.","type":"boolean"}},"required":["found","data"],"title":"Reddit profile output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Reddit Profile","tags":["reddit"],"x-payment-info":{"price":{"currency":"USD","max":"0.002040","min":"0.001000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/reddit.search":{"post":{"description":"Search Reddit posts across all subreddits by query.\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 3 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"reddit_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"query":"mechanical keyboard"},"schema":{"additionalProperties":false,"example":{"query":"mechanical keyboard"},"properties":{"cursor":{"description":"Opaque pagination cursor from a previous response's nextCursor. Omit for the first page; pass it to fetch the next page of results.","type":"string"},"query":{"description":"Free-text search across all of Reddit. Reddit's field operators are supported inside the string: subreddit:\u003cname\u003e to scope to one subreddit, author:\u003cuser\u003e, title:\u003ctext\u003e, selftext:\u003ctext\u003e, self:yes|no, nsfw:yes|no, and boolean AND/OR/NOT. To restrict to a single subreddit you can use subreddit:\u003cname\u003e here, or use the reddit.subreddit_posts SKU for a plain subreddit listing.","type":"string"},"sort":{"description":"Result sort order.","enum":["relevance","hot","top","new","comments"],"type":"string"},"timeframe":{"description":"Time window for results.","enum":["hour","day","week","month","year","all"],"type":"string"}},"required":["query"],"title":"Reddit search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"nextCursor":{"description":"Cursor for the next page of results; pass it back as the `cursor` input to fetch the following page. Empty string when there are no more results.","type":"string"},"posts":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"author":{"description":"Author username, without the u/ prefix. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"id":{"description":"Reddit post ID (base-36, without the t3_ prefix). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"numComments":{"description":"Total number of comments on the post.","type":"integer"},"permalink":{"description":"Canonical reddit.com thread path for the post (e.g. \"/r/golang/comments/abc123/...\"). Differs from url, which is the destination link. Empty if the upstream omits it. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"score":{"description":"Net score (upvotes minus downvotes) at fetch time.","type":"integer"},"subreddit":{"description":"Subreddit name, without the r/ prefix. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Post title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"The post's destination link (the external URL for link posts, or the thread URL for self posts). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","title","author","score","numComments","url","permalink","createdUtc","subreddit"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["posts","nextCursor"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Reddit search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Reddit Search","tags":["reddit"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.001000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/reddit.subreddit_details":{"post":{"description":"Fetch a subreddit's metadata (weekly active users, description, and category).\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 3 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"reddit_subreddit_details","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"subreddit":"programming"},"schema":{"additionalProperties":false,"example":{"subreddit":"programming"},"properties":{"subreddit":{"description":"Subreddit name without the r/ prefix. Case-sensitive (e.g. \"AskReddit\", not \"askreddit\").","type":"string"}},"required":["subreddit"],"title":"Reddit subreddit details input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The subreddit record, or null when nothing was found.","oneOf":[{"type":"null"},{"properties":{"advertiserCategory":{"description":"Reddit advertiser category for the subreddit.","type":"string"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"description":{"description":"Subreddit description text. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"iconUrl":{"description":"URL of the subreddit icon. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Reddit fullname, e.g. \"t5_2qh1i\". Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"name":{"description":"Subreddit name (without the r/ prefix). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"weeklyActiveUsers":{"description":"Number of users active in the past week.","type":"integer"}},"required":["id","name","weeklyActiveUsers","description","advertiserCategory","iconUrl","createdUtc"],"type":"object"}]},"found":{"description":"True when the subreddit was found; false when the lookup returned nothing.","type":"boolean"}},"required":["found","data"],"title":"Reddit subreddit details output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Reddit Subreddit Details","tags":["reddit"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.001000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/reddit.subreddit_posts":{"post":{"description":"Fetch posts from a subreddit listing (hot, new, or top).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"reddit_subreddit_posts","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":5,"subreddit":"programming"},"schema":{"additionalProperties":false,"example":{"limit":5,"subreddit":"programming"},"properties":{"after":{"description":"Pagination cursor from a previous response (its `nextCursor`). Fetches the page that follows; omit for the first page.","type":"string"},"limit":{"default":25,"description":"Requested number of posts. Note: the upstream returns one page (about 25 posts) per call; values larger than a page are not delivered in a single response. To fetch more, page with the `after` cursor returned as `nextCursor`.","maximum":100,"minimum":1,"type":"integer"},"sort":{"default":"hot","description":"Listing sort order.","enum":["hot","new","top"],"type":"string"},"subreddit":{"description":"Subreddit name without the leading r/ (e.g. \"golang\").","type":"string"},"timeframe":{"description":"Time window, applied when sort is \"top\" (e.g. \"year\" for the year's top posts). Ignored for hot/new. Omit to default to the current day for top.","enum":["all","year","month","week","day","hour"],"type":"string"}},"required":["subreddit"],"title":"Reddit subreddit posts input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"nextCursor":{"description":"Cursor for the next page of results; pass it back as the `after` input to fetch the following page. Empty string when there are no more results.","type":"string"},"posts":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"author":{"description":"Author username, without the u/ prefix. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"id":{"description":"Reddit post ID (base-36, without the t3_ prefix). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"numComments":{"description":"Total number of comments on the post.","type":"integer"},"permalink":{"description":"Canonical reddit.com thread path for the post (e.g. \"/r/golang/comments/abc123/...\"). Differs from url, which is the destination link. Empty if the upstream omits it. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"score":{"description":"Net score (upvotes minus downvotes) at fetch time.","type":"integer"},"subreddit":{"description":"Subreddit name, without the r/ prefix. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Post title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"The post's destination link (the external URL for link posts, or the thread URL for self posts). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","title","author","score","numComments","url","permalink","createdUtc","subreddit"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["posts","nextCursor"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Reddit subreddit posts output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Reddit Subreddit Posts","tags":["reddit"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/reddit.subreddit_search":{"post":{"description":"Search posts within a single subreddit by query, sort, and timeframe.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"reddit_subreddit_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"query":"push ups","subreddit":"Fitness"},"schema":{"additionalProperties":false,"example":{"query":"push ups","subreddit":"Fitness"},"properties":{"cursor":{"description":"Optional pagination token from a previous response.","type":"string"},"query":{"description":"Optional search query to match posts (e.g. 'push ups').","type":"string"},"sort":{"description":"Optional sort order: relevance, hot, top, new, comments.","type":"string"},"subreddit":{"description":"Subreddit name without the r/ prefix (e.g. 'Fitness').","type":"string"},"timeframe":{"description":"Optional time filter: all, year, month, week, day, hour.","type":"string"}},"required":["subreddit"],"title":"Reddit Subreddit Search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"nextCursor":{"type":"string"},"posts":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"author":{"description":"Author username, without the u/ prefix. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"createdUtc":{"description":"Post creation time as a UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"id":{"description":"Reddit post ID (base-36, without the t3_ prefix). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"nsfw":{"description":"Whether the post is marked NSFW (over 18).","type":"boolean"},"numComments":{"description":"Total number of comments on the post.","type":"integer"},"permalink":{"description":"Canonical reddit.com thread path for the post (e.g. \"/r/golang/comments/abc123/...\"). Differs from url, which is the destination link. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"score":{"description":"Net score (upvotes minus downvotes) at fetch time.","type":"integer"},"subreddit":{"description":"Subreddit name, without the r/ prefix. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Post title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"The post's destination link (the external URL for link posts, or the thread URL for self posts). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","title","author","url","permalink","score","numComments","createdUtc","subreddit","nsfw"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["nextCursor","posts"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Reddit Subreddit Search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Reddit Subreddit Search","tags":["reddit"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/reddit.user_comments":{"post":{"description":"List a Reddit user's comments by username, sorted by new, top, hot, or controversial, with the parent post title and subreddit on every item and cursor pagination. Comment text comes back as a roughly 300-character preview rather than the full body, and this endpoint carries no per-comment permalink; use reddit.post_comments for full comment bodies and comment URLs on a given post.\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"reddit_user_comments","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"username":"spez"},"schema":{"additionalProperties":false,"example":{"username":"spez"},"properties":{"cursor":{"description":"Opaque pagination cursor from a previous response's nextCursor. Omit for the first page; pass it back to fetch the next page.","minLength":1,"type":"string"},"limit":{"default":25,"description":"Maximum number of comments to return in this response (a page cap, not a total). Defaults to 25.","maximum":100,"minimum":1,"type":"integer"},"sort":{"description":"Sort order for the user's comments. Defaults to new (most recent first).","enum":["new","top","hot","controversial"],"type":"string"},"username":{"description":"Reddit username, without the u/ prefix. Example: \"spez\".","minLength":1,"type":"string"}},"required":["username"],"title":"Reddit user comments input","type":"object","x-aliases":{"handle":"username"}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"One page of the user's comments, or null when the user was not found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"comments":{"description":"The user's comments in feed order (newest first by default). Each item carries a truncated body preview plus the parent post it was made on; there is no per-comment permalink available from this endpoint. Populated whenever the provider has data for the entity.","items":{"properties":{"author":{"description":"Commenter username, without the u/ prefix. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"bodyPreview":{"description":"A preview of the comment text, not the full comment body: the upstream truncates it to roughly 300 characters and cuts mid-word. It is plain text rather than Markdown, and it is empty on the occasional comment for which the upstream returns no preview at all. For full comment bodies and comment permalinks, use the reddit.post_comments SKU against the parent post.","type":"string"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"id":{"description":"Reddit comment ID (base-36, without the t1_ prefix). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"postId":{"description":"Reddit post ID of the thread the comment was made on (base-36, without the t3_ prefix). Pass it to reddit.post or reddit.post_comments for the full thread. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"postTitle":{"description":"Title of the thread the comment was made on. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"score":{"description":"Net score (upvotes minus downvotes) on the comment at fetch time.","type":"integer"},"subreddit":{"description":"Subreddit name of the parent thread, without the r/ prefix. Empty when the comment is on a post hosted on a user's own profile (r/u_\u003cname\u003e), which has no subreddit.","type":"string"}},"required":["id","author","createdUtc"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"nextCursor":{"description":"Opaque cursor for the next page of this user's comments; pass it back as the `cursor` input to fetch the following page. Null when there are no more pages.","type":["string","null"]}},"required":["comments","nextCursor"],"type":"object"}]},"found":{"description":"Whether the user's comment history was returned.","type":"boolean"}},"required":["found","data"],"title":"Reddit user comments output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Reddit User Comments","tags":["reddit"],"x-payment-info":{"price":{"amount":"0.001000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/reddit.user_posts":{"post":{"description":"List a Reddit user's posts by username, sorted by new, top, hot, or controversial, with cursor pagination.\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"reddit_user_posts","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"username":"spez"},"schema":{"additionalProperties":false,"example":{"username":"spez"},"properties":{"cursor":{"description":"Opaque pagination cursor from a previous response's nextCursor. Omit for the first page; pass it back to fetch the next page.","minLength":1,"type":"string"},"sort":{"description":"Sort order for the user's posts. Defaults to new (most recent first).","enum":["new","top","hot","controversial"],"type":"string"},"username":{"description":"Reddit username without the leading u/ prefix (e.g. \"spez\").","minLength":1,"type":"string"}},"required":["username"],"title":"Reddit user posts input","type":"object","x-aliases":{"handle":"username"}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"One page of the user's posts, or null when the user was not found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"nextCursor":{"description":"Opaque cursor for the next page of this user's posts; pass it back as the `cursor` input to fetch the following page. Null when there are no more pages.","type":["string","null"]},"posts":{"description":"The user's posts in feed order. Posts hosted on the user's own profile (r/u_\u003cname\u003e) are included and carry an empty subreddit. Populated whenever the provider has data for the entity.","items":{"properties":{"author":{"description":"Author username, without the u/ prefix. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"id":{"description":"Reddit post ID (base-36, without the t3_ prefix). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"numComments":{"description":"Total number of comments on the post.","type":"integer"},"permalink":{"description":"Canonical reddit.com thread path for the post (e.g. \"/r/golang/comments/abc123/...\"). Differs from url, which is the destination link. Empty if the upstream omits it. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"score":{"description":"Net score (upvotes minus downvotes) at fetch time.","type":"integer"},"subreddit":{"description":"Subreddit name, without the r/ prefix. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Post title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"The post's destination link (the external URL for link posts, or the thread URL for self posts). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","title","author","permalink","createdUtc"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["posts","nextCursor"],"type":"object"}]},"found":{"description":"Whether the user's post feed was returned.","type":"boolean"}},"required":["found","data"],"title":"Reddit user posts output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Reddit User Posts","tags":["reddit"],"x-payment-info":{"price":{"amount":"0.001000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/redfin.search":{"post":{"description":"Run a Redfin map search by URL and get matching home listings (price, address, beds, baths, status) as normalized JSON.\n\n**Price:** billed per result - \\$2.70 per 1,000 requests base + \\$0.43 per 1,000 results, capped at \\$13.45 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"redfin_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"url":"https://www.redfin.com/city/30818/TX/Austin"},"schema":{"additionalProperties":false,"example":{"limit":3,"url":"https://www.redfin.com/city/30818/TX/Austin"},"properties":{"limit":{"description":"Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.","maximum":25,"minimum":1,"type":"integer"},"url":{"description":"Redfin search results URL for a city, ZIP or map area (e.g. https://www.redfin.com/city/30772/CA/San-Francisco).","type":"string"}},"required":["url"],"title":"Redfin search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The result wrapper, or null when nothing matched.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Matching Redfin home listing records. Populated whenever the provider has data for the entity.","items":{"properties":{"addressLine":{"description":"Street address line of the home.","type":"string"},"baths":{"description":"Number of bathrooms (fractional for half baths).","type":"number"},"beds":{"description":"Number of bedrooms.","type":"number"},"city":{"description":"City the home is in.","type":"string"},"latitude":{"description":"Latitude of the home in decimal degrees.","type":"number"},"listingId":{"description":"Redfin listing id for this specific listing.","type":"string"},"longitude":{"description":"Longitude of the home in decimal degrees.","type":"number"},"lotSize":{"description":"Lot size in square feet.","type":"number"},"mlsId":{"description":"MLS number for the listing.","type":"string"},"postalCode":{"description":"Postal (ZIP) code of the home.","type":"string"},"price":{"description":"List (or last sale) price in US dollars.","type":"number"},"pricePerSqft":{"description":"Price per square foot in US dollars.","type":"number"},"propertyId":{"description":"Redfin property id (stable identifier for the home). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"soldUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"sqft":{"description":"Interior living area in square feet.","type":"number"},"state":{"description":"Two-letter state code the home is in.","type":"string"},"status":{"description":"MLS listing status (e.g. Active, Coming Soon, Sold).","type":"string"},"title":{"description":"Street address line used as the listing title.","type":"string"},"url":{"description":"Canonical Redfin listing detail page URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"yearBuilt":{"description":"Year the home was built.","type":"number"}},"required":["propertyId","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when the search returned at least one matching home.","type":"boolean"}},"required":["found","data"],"title":"Redfin search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Redfin Search","tags":["redfin"],"x-payment-info":{"price":{"currency":"USD","max":"0.013450","min":"0.002700","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/rednote.note":{"post":{"description":"Look up a RedNote (Xiaohongshu) note by note ID and return normalized note details.\n\n**Price:** \\$10.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"rednote_note","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"noteId":"66f2a24f000000002c02cf57"},"schema":{"additionalProperties":false,"example":{"noteId":"66f2a24f000000002c02cf57"},"properties":{"noteId":{"description":"RedNote (Xiaohongshu) note ID.","minLength":1,"type":"string"}},"required":["noteId"],"title":"RedNote (Xiaohongshu) Note input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The note record, or null when nothing was found.","oneOf":[{"type":"null"},{"properties":{"authorImage":{"description":"URL of the author's avatar. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorNickname":{"description":"Display name of the note author. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorRedId":{"description":"Author's public RedNote ID. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorUserId":{"description":"Identifier of the note author. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"collectCount":{"description":"Number of times the note was collected.","type":"integer"},"commentCount":{"description":"Number of comments on the note.","type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"description":{"description":"Note body text. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"URL of the note cover image. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"language":{"description":"Detected language of the note. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likeCount":{"description":"Number of likes on the note.","type":"integer"},"noteId":{"description":"Note identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"shareCount":{"description":"Number of times the note was shared.","type":"integer"},"title":{"description":"Note title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"type":{"description":"Note type, e.g. \"normal\" or \"video\". Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"updatedUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"url":{"description":"Canonical URL of the note. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["noteId"],"type":"object"}]},"found":{"description":"True when the note was found; false when the lookup returned nothing.","type":"boolean"}},"required":["found","data"],"title":"RedNote (Xiaohongshu) Note output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"RedNote (Xiaohongshu) Note","tags":["rednote"],"x-payment-info":{"price":{"amount":"0.010000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/rednote.note_comments":{"post":{"description":"List comments on a RedNote (Xiaohongshu) note and return normalized comment records with pagination.\n\n**Price:** \\$10.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"rednote_note_comments","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"noteId":"68dd422c0000000203019829"},"schema":{"additionalProperties":false,"example":{"noteId":"68dd422c0000000203019829"},"properties":{"cursor":{"description":"Pagination cursor from the previous response.","minLength":1,"type":"string"},"noteId":{"description":"RedNote (Xiaohongshu) note ID.","minLength":1,"type":"string"}},"required":["noteId"],"title":"RedNote (Xiaohongshu) Note Comments input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Wrapper holding the comments array plus pagination, or null when nothing was found.","oneOf":[{"type":"null"},{"properties":{"comments":{"description":"Comments on the note. Populated whenever the provider has data for the entity.","items":{"properties":{"commentId":{"description":"Comment identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"image":{"description":"URL of the author's avatar. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"ipLocation":{"description":"IP-based location shown for the commenter. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likeCount":{"description":"Number of likes on the comment.","type":"integer"},"nickname":{"description":"Display name of the comment author. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"noteId":{"description":"Identifier of the note the comment belongs to. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"redId":{"description":"Author's public RedNote ID. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"replyCount":{"description":"Number of replies to the comment.","type":"integer"},"text":{"description":"Comment text content. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"userId":{"description":"Identifier of the comment author. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["commentId"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"nextCursor":{"description":"Cursor for the next page of comments; empty when there are no more.","type":"string"}},"required":["comments","nextCursor"],"type":"object"}]},"found":{"description":"True when comments were found; false when the lookup returned nothing.","type":"boolean"}},"required":["found","data"],"title":"RedNote (Xiaohongshu) Note Comments output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"RedNote (Xiaohongshu) Note Comments","tags":["rednote"],"x-payment-info":{"price":{"amount":"0.010000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/rednote.profile":{"post":{"description":"Look up a RedNote (Xiaohongshu) profile by user ID and return normalized profile details.\n\n**Price:** \\$10.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"rednote_profile","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"userId":"56b0a4491c07df6365277af7"},"schema":{"additionalProperties":false,"example":{"userId":"56b0a4491c07df6365277af7"},"properties":{"userId":{"description":"RedNote (Xiaohongshu) user ID.","minLength":1,"type":"string"}},"required":["userId"],"title":"RedNote (Xiaohongshu) Profile input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"collectedCount":{"type":"integer"},"description":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"followers":{"type":"integer"},"following":{"type":"integer"},"gender":{"type":"integer"},"image":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likedCount":{"type":"integer"},"location":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"nickname":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"postedNotes":{"type":"integer"},"redId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"shareUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"userId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"verified":{"type":"boolean"},"verifyType":{"type":"integer"}},"required":["userId"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"RedNote (Xiaohongshu) profile output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"RedNote (Xiaohongshu) Profile","tags":["rednote"],"x-payment-info":{"price":{"amount":"0.010000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/rednote.search":{"post":{"description":"Search RedNote (Xiaohongshu) notes by keyword and return normalized note records with pagination.\n\n**Price:** \\$10.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"rednote_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"query":"coffee","sort":"general"},"schema":{"additionalProperties":false,"example":{"query":"coffee","sort":"general"},"properties":{"cursor":{"description":"Pagination cursor from the previous response.","minLength":1,"type":"string"},"query":{"description":"Keyword to search for on RedNote (Xiaohongshu).","minLength":1,"type":"string"},"sort":{"default":"general","description":"Sort order for matching notes.","enum":["general","hot","time"],"type":"string"}},"required":["query"],"title":"RedNote (Xiaohongshu) Search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Wrapper holding the notes array plus pagination, or null when nothing was found.","oneOf":[{"type":"null"},{"properties":{"nextCursor":{"description":"Cursor for the next page of results; empty when there are no more.","type":"string"},"notes":{"description":"Notes matching the search. Populated whenever the provider has data for the entity.","items":{"properties":{"authorImage":{"description":"URL of the author's avatar. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorNickname":{"description":"Display name of the note author. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorRedId":{"description":"Author's public RedNote ID. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorUserId":{"description":"Identifier of the note author. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"collectCount":{"description":"Number of times the note was collected.","type":"integer"},"commentCount":{"description":"Number of comments on the note.","type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"description":{"description":"Note body text. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"URL of the note cover image. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likeCount":{"description":"Number of likes on the note.","type":"integer"},"noteId":{"description":"Note identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"shareCount":{"description":"Number of times the note was shared.","type":"integer"},"title":{"description":"Note title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"type":{"description":"Note type, e.g. \"normal\" or \"video\". Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"xsecToken":{"description":"Security token required to fetch the note's full detail. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["noteId"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["notes","nextCursor"],"type":"object"}]},"found":{"description":"True when matching notes were found; false when the search returned nothing.","type":"boolean"}},"required":["found","data"],"title":"RedNote (Xiaohongshu) search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"RedNote (Xiaohongshu) Search","tags":["rednote"],"x-payment-info":{"price":{"amount":"0.010000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/rednote.search_users":{"post":{"description":"Search RedNote (Xiaohongshu) users by keyword and return normalized user records with pagination.\n\n**Price:** \\$10.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"rednote_search_users","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"query":"coffee"},"schema":{"additionalProperties":false,"example":{"query":"coffee"},"properties":{"cursor":{"description":"Pagination cursor from the previous response.","minLength":1,"type":"string"},"query":{"description":"Keyword to search for on RedNote (Xiaohongshu).","minLength":1,"type":"string"}},"required":["query"],"title":"RedNote (Xiaohongshu) User Search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"nextCursor":{"type":"string"},"users":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"description":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"link":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"name":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"redId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"subtitle":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"userId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"verified":{"type":"boolean"},"verifyType":{"type":"integer"}},"required":["userId"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["users","nextCursor"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"RedNote (Xiaohongshu) User Search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"RedNote (Xiaohongshu) User Search","tags":["rednote"],"x-payment-info":{"price":{"amount":"0.010000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/rednote.user_notes":{"post":{"description":"List notes posted by a RedNote (Xiaohongshu) user and return normalized note records with pagination.\n\n**Price:** \\$10.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"rednote_user_notes","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"userId":"56b0a4491c07df6365277af7"},"schema":{"additionalProperties":false,"example":{"userId":"56b0a4491c07df6365277af7"},"properties":{"cursor":{"description":"Pagination cursor from the previous response.","minLength":1,"type":"string"},"userId":{"description":"RedNote (Xiaohongshu) user ID.","minLength":1,"type":"string"}},"required":["userId"],"title":"RedNote (Xiaohongshu) User Notes input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Wrapper holding the notes array plus pagination, or null when nothing was found.","oneOf":[{"type":"null"},{"properties":{"nextCursor":{"description":"Cursor for the next page of results; empty when there are no more.","type":"string"},"notes":{"description":"The user's notes. Populated whenever the provider has data for the entity.","items":{"properties":{"authorImage":{"description":"URL of the author's avatar. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorNickname":{"description":"Display name of the note author. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorUserId":{"description":"Identifier of the note author. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"collectCount":{"description":"Number of times the note was collected.","type":"integer"},"commentCount":{"description":"Number of comments on the note.","type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"description":{"description":"Note body text. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"URL of the note cover image. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likeCount":{"description":"Number of likes on the note.","type":"integer"},"noteId":{"description":"Note identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"shareCount":{"description":"Number of times the note was shared.","type":"integer"},"title":{"description":"Note title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"type":{"description":"Note type, e.g. \"normal\" or \"video\". Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["noteId"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["notes","nextCursor"],"type":"object"}]},"found":{"description":"True when the user's notes were found; false when the lookup returned nothing.","type":"boolean"}},"required":["found","data"],"title":"RedNote (Xiaohongshu) user notes output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"RedNote (Xiaohongshu) User Notes","tags":["rednote"],"x-payment-info":{"price":{"amount":"0.010000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/sec.filings":{"post":{"description":"List a public company's SEC EDGAR filings - form type, filing date, accession number, and document links - by ticker, company name, or CIK, with optional form-type and date filters.\n\n**Price:** billed per result - \\$2.00 per 1,000 requests base + \\$0.40 per 1,000 results, capped at \\$12.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"sec_filings","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"ticker":"AAPL"},"schema":{"additionalProperties":false,"anyOf":[{"required":["ticker"]},{"required":["companyName"]}],"example":{"limit":3,"ticker":"AAPL"},"properties":{"companyName":{"description":"Company name to search for (partial match supported, e.g. 'Tesla' or 'Berkshire'). Use this when you do not have the ticker symbol. If both ticker and companyName are given, ticker takes precedence.","type":"string"},"dateFrom":{"description":"Only return filings filed on or after this date, in YYYY-MM-DD format (e.g. 2025-01-01).","type":"string"},"dateTo":{"description":"Only return filings filed on or before this date, in YYYY-MM-DD format (e.g. 2026-06-01).","type":"string"},"form":{"description":"Filter filings by SEC form type (e.g. 10-K, 10-Q, 8-K, 4, DEF 14A, S-1, 13F-HR); omit for all forms.","type":"string"},"limit":{"description":"Maximum number of filings to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.","maximum":25,"minimum":1,"type":"integer"},"ticker":{"description":"Company stock ticker symbol, e.g. AAPL, MSFT, or TSLA. Provide either ticker or companyName; ticker is the more precise lookup.","type":"string"}},"title":"SEC EDGAR filings input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The result wrapper, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Filing records: company and CIK, form type, filing date, accession number, and document links. Populated whenever the provider has data for the entity.","items":{"properties":{"accessionNumber":{"description":"SEC accession number uniquely identifying the filing. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"cik":{"description":"SEC Central Index Key for the filer. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"companyName":{"description":"Filer company name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"description":{"description":"Primary document description, e.g. the form label.","type":"string"},"filedUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Date the filing was filed. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"filingUrl":{"description":"Link to the filing index/folder on sec.gov.","type":"string"},"form":{"description":"SEC form type, e.g. 10-K, 10-Q, 8-K. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"reportedUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Period-of-report date for the filing.","type":"number"},"ticker":{"description":"Stock ticker symbol of the filer, when known.","type":"string"},"url":{"description":"Direct link to the primary filing document on sec.gov. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["url","accessionNumber"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when at least one filing record was returned.","type":"boolean"}},"required":["found","data"],"title":"SEC EDGAR filings output","type":"object","x-anyapi-heavy":true},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"SEC EDGAR Filings","tags":["sec"],"x-payment-info":{"price":{"currency":"USD","max":"0.012000","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/semrush.keywords":{"post":{"description":"Semrush keyword research for any term: monthly search volume, CPC, competition, keyword difficulty, plus related keywords and question keywords.\n\n**Price:** billed per result - \\$15.00 per 1,000 results, capped at \\$15.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"semrush_keywords","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"database":"us","keyword":"best running shoes"},"schema":{"additionalProperties":false,"example":{"database":"us","keyword":"best running shoes"},"properties":{"database":{"default":"us","description":"Two-letter Semrush regional database that scopes the metrics (e.g. us, uk, de).","type":"string"},"keyword":{"description":"The search term to research (e.g. \"best running shoes\").","type":"string"}},"required":["keyword"],"title":"Semrush keyword research input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Keyword-research records: search volume, CPC, competition, keyword difficulty, plus related keywords and question keywords for the researched term. Populated whenever the provider has data for the entity.","items":{"properties":{"competition":{"description":"Paid-search competition density, 0 to 1.","type":"number"},"cpcUsd":{"description":"Average cost per click in USD.","type":"number"},"database":{"description":"Two-letter Semrush regional database the metrics are scoped to.","type":"string"},"intents":{"description":"Search-intent labels for the keyword (e.g. commercial, informational). Populated whenever the provider has data for the entity.","items":{"type":"string"},"type":"array","x-anyapi-must-populate":true},"keyword":{"description":"The researched search term. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"keywordDifficulty":{"description":"Semrush Keyword Difficulty, 0 to 100.","type":"integer"},"organicResultsCount":{"description":"Number of organic results Google returns for the keyword.","type":"integer"},"questions":{"description":"Question-phrased keyword variations with their own volume and difficulty. Populated whenever the provider has data for the entity.","items":{"properties":{"keyword":{"description":"The question keyword.","type":"string"},"keywordDifficulty":{"description":"Semrush Keyword Difficulty for the question keyword, 0 to 100.","type":"integer"},"searchVolume":{"description":"Average monthly search volume for the question keyword.","type":"integer"}},"required":["keyword"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"referringDomainsMedian":{"description":"Median number of referring domains across the ranking pages.","type":"integer"},"relatedKeywords":{"description":"Related keyword suggestions with their own volume and difficulty. Populated whenever the provider has data for the entity.","items":{"properties":{"keyword":{"description":"The related keyword.","type":"string"},"keywordDifficulty":{"description":"Semrush Keyword Difficulty for the related keyword, 0 to 100.","type":"integer"},"searchVolume":{"description":"Average monthly search volume for the related keyword.","type":"integer"}},"required":["keyword"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"searchVolume":{"description":"Average monthly search volume in the selected database.","type":"integer"}},"required":["keyword"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Semrush keyword research output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Semrush Keyword Research","tags":["semrush"],"x-payment-info":{"price":{"currency":"USD","max":"0.015000","min":"0.000000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/semrush.overview":{"post":{"description":"a Semrush SEO overview for any domain: Authority Score, organic and paid traffic, keyword and backlink counts, top country, and the domain's top organic keywords.\n\n**Price:** billed per result - \\$15.00 per 1,000 results, capped at \\$15.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"semrush_overview","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"database":"us","domain":"ahrefs.com"},"schema":{"additionalProperties":false,"example":{"database":"us","domain":"ahrefs.com"},"properties":{"database":{"default":"us","description":"Two-letter Semrush regional database that scopes the metrics (e.g. us, uk, de).","type":"string"},"domain":{"description":"The domain to analyze (e.g. ahrefs.com).","type":"string"},"includeMoz":{"default":false,"description":"Add Moz Domain Authority and Spam Score to the response.","type":"boolean"}},"required":["domain"],"title":"Semrush domain overview input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Domain overview records: Authority Score, organic and paid traffic, keyword and backlink counts, top country, and the domain's top organic keywords. Populated whenever the provider has data for the entity.","items":{"properties":{"aiVisibility":{"description":"Semrush AI visibility metric for the domain.","type":"integer"},"authorityScore":{"description":"Semrush Authority Score, 0-100.","type":"integer"},"backlinks":{"description":"Total number of backlinks pointing at the domain.","type":"integer"},"database":{"description":"Two-letter Semrush regional database the metrics are scoped to.","type":"string"},"domain":{"description":"The analyzed domain. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"followBacklinks":{"description":"Number of dofollow backlinks.","type":"integer"},"mozDomainAuthority":{"description":"Moz Domain Authority, 0-100 (only when includeMoz is true).","type":"integer"},"mozSpamScore":{"description":"Moz Spam Score as a percentage string (only when includeMoz is true).","type":"string"},"nofollowBacklinks":{"description":"Number of nofollow backlinks.","type":"integer"},"organicKeywords":{"description":"Number of keywords the domain ranks for organically.","type":"integer"},"organicTraffic":{"description":"Estimated monthly organic search traffic.","type":"integer"},"organicTrafficCostUsd":{"description":"Estimated USD value of the organic traffic.","type":"number"},"paidKeywords":{"description":"Number of keywords the domain bids on.","type":"integer"},"paidTraffic":{"description":"Estimated monthly paid search traffic.","type":"integer"},"paidTrafficCostUsd":{"description":"Estimated USD value of the paid traffic.","type":"number"},"referringDomains":{"description":"Number of unique domains linking to the domain.","type":"integer"},"topCountry":{"description":"Two-letter code of the country sending the most traffic.","type":"string"},"topCountryTraffic":{"description":"Estimated monthly traffic from the top country.","type":"integer"},"topKeywords":{"description":"The domain's top organic keywords with position, volume, and value. Populated whenever the provider has data for the entity.","items":{"properties":{"cpcUsd":{"description":"Average cost per click in USD.","type":"number"},"intents":{"description":"Search intents associated with the keyword.","items":{"type":"string"},"type":"array"},"keyword":{"description":"The organic keyword.","type":"string"},"keywordDifficulty":{"description":"Semrush Keyword Difficulty, 0-100.","type":"integer"},"position":{"description":"Current SERP position for this keyword.","type":"integer"},"searchVolume":{"description":"Monthly search volume for this keyword.","type":"integer"},"traffic":{"description":"Estimated monthly traffic this keyword drives to the domain.","type":"integer"},"url":{"description":"The ranking URL on the domain.","type":"string"}},"required":["keyword"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"totalTraffic":{"description":"Estimated total monthly traffic across organic and paid.","type":"integer"}},"required":["domain"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Semrush domain overview output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Semrush Domain Overview","tags":["semrush"],"x-payment-info":{"price":{"currency":"USD","max":"0.015000","min":"0.000000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/seo.competitors_domain":{"post":{"description":"Get AnyAPI SEO competitor domains for a target domain with shared keyword counts and organic metrics as normalized JSON.\n\n**Price:** billed per result - \\$15.60 per 1,000 requests base + \\$0.16 per 1,000 results, capped at \\$175.60 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"seo_competitors_domain","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"language":"en","limit":10,"location":2840,"target":"github.com"},"schema":{"additionalProperties":false,"example":{"language":"en","limit":10,"location":2840,"target":"github.com"},"properties":{"language":{"default":"en","description":"Language code for SEO competitor metrics.","type":"string"},"limit":{"default":10,"description":"Maximum number of competitor domains to return. You are billed per returned result, so a lower limit costs less.","maximum":1000,"minimum":1,"type":"integer"},"location":{"default":2840,"description":"Location code for SEO competitor metrics. The default is the United States.","type":"integer"},"orderBy":{"description":"Sort order for the returned competitors: by shared keyword count (intersections), organic keyword count, organic traffic value (etv), or average position. Omit for the default order.","enum":["intersections_desc","organic_keywords_desc","organic_etv_desc","avg_position_asc"],"type":"string"},"target":{"description":"Domain to analyze, without a protocol or leading www.","maxLength":253,"minLength":3,"type":"string"}},"required":["target"],"title":"SEO Competitor Domains input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"competitors":{"description":"SEO competitor domain records. Populated whenever the provider has data for the entity.","items":{"properties":{"avgPosition":{"description":"Average ranking position across shared keywords. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"domain":{"description":"Competing domain. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"intersections":{"description":"Number of keywords shared with the target domain. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"organicEtv":{"description":"Estimated monthly organic search traffic for the competitor domain.","type":"number"},"organicKeywords":{"description":"Number of organic search results where the competitor domain appears.","type":"integer"},"sumPosition":{"description":"Sum of ranking positions across shared keywords. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true}},"required":["domain","intersections"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["competitors"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"SEO Competitor Domains output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"SEO Competitor Domains","tags":["seo"],"x-payment-info":{"price":{"currency":"USD","max":"0.175600","min":"0.015600","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/seo.domain_intersection":{"post":{"description":"Get AnyAPI SEO keyword overlap for two domains with each domain's rankings, URLs, volume, CPC, and difficulty as normalized JSON.\n\n**Price:** billed per result - \\$15.60 per 1,000 requests base + \\$0.16 per 1,000 results, capped at \\$175.60 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"seo_domain_intersection","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"language":"en","limit":10,"location":2840,"target1":"github.com","target2":"gitlab.com"},"schema":{"additionalProperties":false,"example":{"language":"en","limit":10,"location":2840,"target1":"github.com","target2":"gitlab.com"},"properties":{"intersections":{"description":"When true (the default), return keywords both domains rank for (overlap). When false, return keywords the first domain ranks for that the second domain does NOT (the content-gap query); in that mode secondRank and secondUrl are absent.","type":"boolean"},"language":{"default":"en","description":"Language code for SEO overlap metrics.","type":"string"},"limit":{"default":10,"description":"Maximum number of keywords to return. You are billed per returned result, so a lower limit costs less.","maximum":1000,"minimum":1,"type":"integer"},"location":{"default":2840,"description":"Location code for SEO overlap metrics. The default is the United States.","type":"integer"},"orderBy":{"description":"Sort order for the returned keywords: by search volume, cost per click, or keyword difficulty, ascending or descending. Omit for the default order.","enum":["volume_desc","volume_asc","cpc_desc","difficulty_asc","difficulty_desc"],"type":"string"},"target1":{"description":"First domain to compare, without a protocol or leading www.","maxLength":253,"minLength":3,"type":"string"},"target2":{"description":"Second domain to compare, without a protocol or leading www.","maxLength":253,"minLength":3,"type":"string"}},"required":["target1","target2"],"title":"SEO Domain Intersection input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"keywords":{"description":"SEO keyword records both domains rank for. Populated whenever the provider has data for the entity.","items":{"properties":{"cpc":{"description":"Average paid-search cost per click in USD.","type":"number"},"firstRank":{"description":"Absolute organic ranking position for the first domain. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"firstUrl":{"description":"Ranking URL for the first domain.","type":"string"},"keyword":{"description":"Keyword phrase both domains rank for. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"keywordDifficulty":{"description":"Estimated organic ranking difficulty on a 0-100 scale.","type":"integer"},"searchVolume":{"description":"Average monthly search volume for the keyword.","type":"integer"},"secondRank":{"description":"Absolute organic ranking position for the second domain. Absent when intersections is false (the second domain does not rank for this keyword).","type":"integer"},"secondUrl":{"description":"Ranking URL for the second domain. Absent when intersections is false.","type":"string"},"updatedUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"}},"required":["keyword","firstRank"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["keywords"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"SEO Domain Intersection output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"SEO Domain Intersection","tags":["seo"],"x-payment-info":{"price":{"currency":"USD","max":"0.175600","min":"0.015600","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/seo.domain_rank_overview":{"post":{"description":"Get AnyAPI SEO domain ranking, organic traffic, and paid traffic metrics as normalized JSON.\n\n**Price:** billed per result - \\$15.60 per 1,000 requests base + \\$0.00 per 1,000 results, capped at \\$15.60 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"seo_domain_rank_overview","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"language":"en","location":2840,"target":"ahrefs.com"},"schema":{"additionalProperties":false,"example":{"language":"en","location":2840,"target":"ahrefs.com"},"properties":{"language":{"default":"en","description":"Language code for SEO domain metrics.","type":"string"},"location":{"default":2840,"description":"Location code for SEO domain metrics. The default is the United States.","type":"integer"},"target":{"description":"Domain to analyze, without a protocol or leading www.","maxLength":253,"minLength":3,"type":"string"}},"required":["target"],"title":"SEO Domain Rank Overview input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"domain":{"description":"Analyzed domain. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"language":{"description":"Language code the metrics are scoped to.","type":"string"},"location":{"description":"Location code the metrics are scoped to.","type":"integer"},"organicKeywords":{"description":"Number of organic search results where the domain appears. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"organicPos1":{"description":"Number of organic search results where the domain ranks first. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"organicPos2To3":{"description":"Number of organic search results where the domain ranks second or third. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"organicPos4To10":{"description":"Number of organic search results where the domain ranks fourth through tenth. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"organicTraffic":{"description":"Estimated monthly organic search traffic. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"organicTrafficCostUsd":{"description":"Estimated USD value of the organic search traffic. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"paidKeywords":{"description":"Number of paid search results where the domain appears.","type":"integer"},"paidPos1":{"description":"Number of paid search results where the domain ranks first.","type":"integer"},"paidPos2To3":{"description":"Number of paid search results where the domain ranks second or third.","type":"integer"},"paidPos4To10":{"description":"Number of paid search results where the domain ranks fourth through tenth.","type":"integer"},"paidTraffic":{"description":"Estimated monthly paid search traffic.","type":"number"},"paidTrafficCostUsd":{"description":"Estimated USD value of the paid search traffic.","type":"number"}},"required":["domain"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"SEO Domain Rank Overview output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"SEO Domain Rank Overview","tags":["seo"],"x-payment-info":{"price":{"currency":"USD","max":"0.015600","min":"0.015600","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/seo.keyword_difficulty":{"post":{"description":"Get AnyAPI SEO keyword difficulty scores for one or more keywords as normalized JSON.\n\n**Price:** billed per keyword - \\$15.60 per 1,000 requests base + \\$0.16 per 1,000 keywords, capped at \\$175.60 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"seo_keyword_difficulty","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"keywords":["seo tools"],"language":"en","location":2840},"schema":{"additionalProperties":false,"example":{"keywords":["seo tools"],"language":"en","location":2840},"properties":{"keywords":{"description":"SEO keywords to score for organic ranking difficulty.","items":{"maxLength":80,"minLength":3,"type":"string"},"maxItems":1000,"minItems":1,"type":"array"},"language":{"default":"en","description":"Language code for SEO keyword difficulty metrics.","type":"string"},"location":{"default":2840,"description":"Location code for SEO keyword difficulty metrics. The default is the United States.","type":"integer"}},"required":["keywords"],"title":"SEO Keyword Difficulty input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"difficulties":{"description":"SEO keyword difficulty records. Populated whenever the provider has data for the entity.","items":{"properties":{"keyword":{"description":"Keyword phrase. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"keywordDifficulty":{"description":"Estimated organic ranking difficulty on a 0-100 scale. Omitted when the upstream has no difficulty for the keyword. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true}},"required":["keyword"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["difficulties"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"SEO Keyword Difficulty output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"SEO Keyword Difficulty","tags":["seo"],"x-payment-info":{"price":{"currency":"USD","max":"0.175600","min":"0.015600","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/seo.keyword_ideas":{"post":{"description":"Find AnyAPI SEO keyword ideas from seed terms with volume, CPC, competition, difficulty, and intent as normalized JSON.\n\n**Price:** billed per result - \\$15.60 per 1,000 requests base + \\$0.16 per 1,000 results, capped at \\$175.60 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"seo_keyword_ideas","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"keywords":["project management software"],"language":"en","limit":5,"location":2840},"schema":{"additionalProperties":false,"example":{"keywords":["project management software"],"language":"en","limit":5,"location":2840},"properties":{"closelyVariants":{"description":"When true, generate only close variants of the seed keywords; when false (the default), generate a broader set of related ideas.","type":"boolean"},"keywords":{"description":"Seed SEO keywords used to generate related keyword ideas.","items":{"minLength":3,"type":"string"},"maxItems":200,"minItems":1,"type":"array"},"language":{"default":"en","description":"Language code for SEO metrics.","type":"string"},"limit":{"default":5,"description":"Maximum number of keyword ideas to return. You are billed per returned result, so a lower limit costs less.","maximum":1000,"minimum":1,"type":"integer"},"location":{"default":2840,"description":"Location code for SEO metrics. The default is the United States.","type":"integer"},"orderBy":{"description":"Sort order for the returned ideas: by search volume, cost per click, or keyword difficulty, ascending or descending. Omit for the default order.","enum":["volume_desc","volume_asc","cpc_desc","difficulty_asc","difficulty_desc"],"type":"string"}},"required":["keywords"],"title":"SEO Keyword Ideas input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"ideas":{"description":"SEO keyword idea records. Populated whenever the provider has data for the entity.","items":{"properties":{"competition":{"description":"Paid-search competition level for the keyword idea. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"cpc":{"description":"Average paid-search cost per click in USD. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"keyword":{"description":"Keyword idea phrase. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"keywordDifficulty":{"description":"Estimated organic ranking difficulty on a 0-100 scale. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"searchIntent":{"description":"Primary SEO search intent for the keyword idea. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"searchVolume":{"description":"Average monthly search volume for the keyword idea. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"updatedUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"}},"required":["keyword"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["ideas"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"SEO Keyword Ideas output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"SEO Keyword Ideas","tags":["seo"],"x-payment-info":{"price":{"currency":"USD","max":"0.175600","min":"0.015600","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/seo.keyword_overview":{"post":{"description":"Get AnyAPI SEO keyword metrics including search volume, CPC, competition, difficulty, and search intent as normalized JSON.\n\n**Price:** billed per keyword - \\$15.60 per 1,000 requests base + \\$0.16 per 1,000 keywords, capped at \\$127.60 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"seo_keyword_overview","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"keywords":["project management software"],"language":"en","location":2840},"schema":{"additionalProperties":false,"example":{"keywords":["project management software"],"language":"en","location":2840},"properties":{"keywords":{"description":"SEO keywords to analyze.","items":{"maxLength":80,"minLength":3,"type":"string"},"maxItems":700,"minItems":1,"type":"array"},"language":{"default":"en","description":"Language code for SEO metrics.","type":"string"},"location":{"default":2840,"description":"Location code for SEO metrics. The default is the United States.","type":"integer"}},"required":["keywords"],"title":"SEO Keyword Overview input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"keywords":{"description":"SEO keyword metric records. Populated whenever the provider has data for the entity.","items":{"properties":{"bidHigh":{"description":"Upper bound of the estimated paid-search top-of-page bid in USD.","type":"number"},"bidLow":{"description":"Lower bound of the estimated paid-search top-of-page bid in USD.","type":"number"},"competition":{"description":"Paid-search competition level for the keyword. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"cpc":{"description":"Average paid-search cost per click in USD. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"keyword":{"description":"Keyword phrase. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"keywordDifficulty":{"description":"Estimated organic ranking difficulty on a 0-100 scale. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"monthlySearches":{"description":"Monthly search-volume history for the keyword.","items":{"properties":{"month":{"description":"Calendar month number for the monthly search-volume record.","type":"integer"},"searchVolume":{"description":"Search volume for the month.","type":"integer"},"year":{"description":"Calendar year for the monthly search-volume record.","type":"integer"}},"type":"object"},"type":"array"},"searchIntent":{"description":"Primary SEO search intent for the keyword. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"searchVolume":{"description":"Average monthly search volume for the keyword. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"updatedUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"}},"required":["keyword"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["keywords"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"SEO Keyword Overview output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"SEO Keyword Overview","tags":["seo"],"x-payment-info":{"price":{"currency":"USD","max":"0.127600","min":"0.015600","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/seo.keyword_suggestions":{"post":{"description":"Find AnyAPI SEO keyword suggestions from a seed term with volume, CPC, competition, difficulty, and intent as normalized JSON.\n\n**Price:** billed per result - \\$15.60 per 1,000 requests base + \\$0.16 per 1,000 results, capped at \\$175.60 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"seo_keyword_suggestions","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"keyword":"project management software","language":"en","limit":5,"location":2840},"schema":{"additionalProperties":false,"example":{"keyword":"project management software","language":"en","limit":5,"location":2840},"properties":{"exactMatch":{"description":"When true, only return suggestions that contain the exact seed phrase; when false (the default), allow reordered and partial-match suggestions.","type":"boolean"},"keyword":{"description":"Seed SEO keyword used to generate keyword suggestions.","maxLength":80,"minLength":3,"type":"string"},"language":{"default":"en","description":"Language code for SEO metrics.","type":"string"},"limit":{"default":5,"description":"Maximum number of keyword suggestions to return. You are billed per returned result, so a lower limit costs less.","maximum":1000,"minimum":1,"type":"integer"},"location":{"default":2840,"description":"Location code for SEO metrics. The default is the United States.","type":"integer"},"orderBy":{"description":"Sort order for the returned suggestions: by search volume, cost per click, or keyword difficulty, ascending or descending. Omit for the default order.","enum":["volume_desc","volume_asc","cpc_desc","difficulty_asc","difficulty_desc"],"type":"string"}},"required":["keyword"],"title":"SEO Keyword Suggestions input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"suggestions":{"description":"SEO keyword suggestion records. Populated whenever the provider has data for the entity.","items":{"properties":{"competition":{"description":"Paid-search competition level for the keyword suggestion. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"cpc":{"description":"Average paid-search cost per click in USD. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"keyword":{"description":"Keyword suggestion phrase. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"keywordDifficulty":{"description":"Estimated organic ranking difficulty on a 0-100 scale. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"searchIntent":{"description":"Primary SEO search intent for the keyword suggestion. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"searchVolume":{"description":"Average monthly search volume for the keyword suggestion. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"updatedUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"}},"required":["keyword"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["suggestions"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"SEO Keyword Suggestions output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"SEO Keyword Suggestions","tags":["seo"],"x-payment-info":{"price":{"currency":"USD","max":"0.175600","min":"0.015600","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/seo.local_pack":{"post":{"description":"Search AnyAPI SEO local pack results with rankings, ratings, addresses, and contact basics as normalized JSON.\n\n**Price:** billed per result - \\$2.60 per 1,000 requests base + \\$0.00 per 1,000 results, capped at \\$2.60 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"seo_local_pack","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"keyword":"coffee shop","language":"en","limit":5,"location":"New York,New York,United States"},"schema":{"additionalProperties":false,"example":{"keyword":"coffee shop","language":"en","limit":5,"location":"New York,New York,United States"},"oneOf":[{"required":["location"]},{"required":["locationCoordinate"]}],"properties":{"keyword":{"description":"SEO local pack search keyword.","maxLength":200,"minLength":2,"type":"string"},"language":{"default":"en","description":"Language code for SEO local pack results.","type":"string"},"limit":{"default":20,"description":"Maximum number of local pack places to return. Billing is flat per request.","maximum":100,"minimum":1,"type":"integer"},"location":{"description":"Local pack search location name, formatted like City,Region,Country; for example, New York,New York,United States. Supply either location or locationCoordinate, not both.","maxLength":180,"minLength":3,"type":"string"},"locationCoordinate":{"description":"Precise geo target as latitude,longitude or latitude,longitude,radius (radius in meters); for example, 40.7580,-73.9855 or 40.7580,-73.9855,1000. Supply either location or locationCoordinate, not both.","pattern":"^-?[0-9]+(\\.[0-9]+)?,-?[0-9]+(\\.[0-9]+)?(,[0-9]+)?$","type":"string"}},"required":["keyword"],"title":"SEO Local Pack input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"places":{"description":"SEO local pack place records. Populated whenever the provider has data for the entity.","items":{"properties":{"address":{"description":"Full formatted street address. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"category":{"description":"Primary place category.","type":"string"},"claimed":{"description":"True when the place listing is claimed.","type":"boolean"},"latitude":{"description":"Latitude of the place in decimal degrees.","type":"number"},"longitude":{"description":"Longitude of the place in decimal degrees.","type":"number"},"name":{"description":"Place name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"phone":{"description":"Business phone number, when listed.","type":"string"},"placeId":{"description":"Place identifier.","type":"string"},"rankAbsolute":{"description":"Absolute ranking position in the local pack results. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"rating":{"description":"Average star rating out of 5. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"reviewsCount":{"description":"Total number of reviews.","type":"integer"},"url":{"description":"Canonical place URL.","type":"string"}},"required":["name","rankAbsolute"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["places"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"SEO Local Pack output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"SEO Local Pack","tags":["seo"],"x-payment-info":{"price":{"currency":"USD","max":"0.002600","min":"0.002600","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/seo.ranked_keywords":{"post":{"description":"Get AnyAPI SEO ranked keywords for a domain with rankings, traffic estimates, volume, CPC, difficulty, and intent as normalized JSON.\n\n**Price:** billed per result - \\$15.60 per 1,000 requests base + \\$0.16 per 1,000 results, capped at \\$175.60 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"seo_ranked_keywords","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"language":"en","limit":10,"location":2840,"target":"github.com"},"schema":{"additionalProperties":false,"example":{"language":"en","limit":10,"location":2840,"target":"github.com"},"properties":{"language":{"default":"en","description":"Language code for SEO ranking metrics.","type":"string"},"limit":{"default":10,"description":"Maximum number of ranked keywords to return. You are billed per returned result, so a lower limit costs less.","maximum":1000,"minimum":1,"type":"integer"},"location":{"default":2840,"description":"Location code for SEO ranking metrics. The default is the United States.","type":"integer"},"orderBy":{"description":"Sort order for the returned ranked keywords: by SERP position (ascending for best rankings first), search volume, or estimated traffic value (etv). Omit for the default order.","enum":["position_asc","position_desc","volume_desc","etv_desc"],"type":"string"},"target":{"description":"Domain to analyze, without a protocol or leading www.","maxLength":253,"minLength":3,"type":"string"}},"required":["target"],"title":"SEO Ranked Keywords input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"rankedKeywords":{"description":"SEO ranked keyword records for the domain. Populated whenever the provider has data for the entity.","items":{"properties":{"cpc":{"description":"Average paid-search cost per click in USD.","type":"number"},"etv":{"description":"Estimated organic search traffic for the ranking URL.","type":"number"},"keyword":{"description":"Keyword phrase the domain ranks for. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"keywordDifficulty":{"description":"Estimated organic ranking difficulty on a 0-100 scale.","type":"integer"},"rankAbsolute":{"description":"Absolute organic ranking position for the keyword. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"rankGroup":{"description":"Grouped organic ranking position for the keyword. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"searchIntent":{"description":"Primary SEO search intent for the keyword.","type":"string"},"searchVolume":{"description":"Average monthly search volume for the keyword. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"updatedUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"url":{"description":"Ranking URL for the domain.","type":"string"}},"required":["keyword","rankAbsolute"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["rankedKeywords"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"SEO Ranked Keywords output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"SEO Ranked Keywords","tags":["seo"],"x-payment-info":{"price":{"currency":"USD","max":"0.175600","min":"0.015600","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/seo.related_keywords":{"post":{"description":"Find AnyAPI SEO related keywords from a seed term with volume, CPC, competition, difficulty, and intent as normalized JSON.\n\n**Price:** billed per result - \\$15.60 per 1,000 requests base + \\$0.16 per 1,000 results, capped at \\$175.60 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"seo_related_keywords","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"keyword":"project management software","language":"en","limit":5,"location":2840},"schema":{"additionalProperties":false,"example":{"keyword":"project management software","language":"en","limit":5,"location":2840},"properties":{"depth":{"description":"Depth of the related-keyword expansion (0-4). Higher depth explores a broader keyword tree; the number of returned results, and therefore the price, is still capped by limit.","maximum":4,"minimum":0,"type":"integer"},"keyword":{"description":"Seed SEO keyword used to find related keywords.","maxLength":80,"minLength":3,"type":"string"},"language":{"default":"en","description":"Language code for SEO metrics.","type":"string"},"limit":{"default":5,"description":"Maximum number of related keywords to return. You are billed per returned result, so a lower limit costs less.","maximum":1000,"minimum":1,"type":"integer"},"location":{"default":2840,"description":"Location code for SEO metrics. The default is the United States.","type":"integer"},"orderBy":{"description":"Sort order for the returned related keywords: by search volume, cost per click, or keyword difficulty, ascending or descending. Omit for the default order.","enum":["volume_desc","volume_asc","cpc_desc","difficulty_asc","difficulty_desc"],"type":"string"}},"required":["keyword"],"title":"SEO Related Keywords input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"relatedKeywords":{"description":"SEO related keyword records. Populated whenever the provider has data for the entity.","items":{"properties":{"competition":{"description":"Paid-search competition level for the related keyword. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"cpc":{"description":"Average paid-search cost per click in USD. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"depth":{"description":"Related-keyword graph depth from the seed keyword. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"keyword":{"description":"Related keyword phrase. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"keywordDifficulty":{"description":"Estimated organic ranking difficulty on a 0-100 scale. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"searchIntent":{"description":"Primary SEO search intent for the related keyword. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"searchVolume":{"description":"Average monthly search volume for the related keyword. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"updatedUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"}},"required":["keyword"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["relatedKeywords"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"SEO Related Keywords output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"SEO Related Keywords","tags":["seo"],"x-payment-info":{"price":{"currency":"USD","max":"0.175600","min":"0.015600","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/seo.search_intent":{"post":{"description":"Classify AnyAPI SEO keyword search intent as normalized JSON.\n\n**Price:** billed per keyword - \\$15.60 per 1,000 requests base + \\$0.16 per 1,000 keywords, capped at \\$175.60 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"seo_search_intent","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"keywords":["seo tools"],"language":"en"},"schema":{"additionalProperties":false,"example":{"keywords":["seo tools"],"language":"en"},"properties":{"keywords":{"description":"SEO keywords to classify by search intent.","items":{"maxLength":80,"minLength":3,"type":"string"},"maxItems":1000,"minItems":1,"type":"array"},"language":{"default":"en","description":"Language code for search intent classification.","type":"string"}},"required":["keywords"],"title":"SEO Search Intent input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"intents":{"description":"SEO keyword search intent records. Populated whenever the provider has data for the entity.","items":{"properties":{"intent":{"description":"Primary SEO search intent for the keyword. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"keyword":{"description":"Keyword phrase. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["keyword","intent"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["intents"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"SEO Search Intent output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"SEO Search Intent","tags":["seo"],"x-payment-info":{"price":{"currency":"USD","max":"0.175600","min":"0.015600","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/seo.search_volume":{"post":{"description":"Get AnyAPI SEO keyword search volume, CPC, competition, bid estimates, and monthly history as normalized JSON.\n\n**Price:** billed per result - \\$117.00 per 1,000 requests base + \\$0.00 per 1,000 results, capped at \\$117.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"seo_search_volume","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"keywords":["seo tools"],"language":"en","location":2840},"schema":{"additionalProperties":false,"example":{"keywords":["seo tools"],"language":"en","location":2840},"properties":{"dateFrom":{"description":"Start of the historical monthly-searches window, formatted YYYY-MM-DD. Cannot be more than four years before today. Omit for the default trailing window.","pattern":"^[0-9]{4}-[0-9]{2}-[0-9]{2}$","type":"string"},"dateTo":{"description":"End of the historical monthly-searches window, formatted YYYY-MM-DD. Omit for the default trailing window.","pattern":"^[0-9]{4}-[0-9]{2}-[0-9]{2}$","type":"string"},"keywords":{"description":"SEO keyword phrases to retrieve search-volume metrics for.","items":{"maxLength":80,"minLength":3,"type":"string"},"maxItems":1000,"minItems":1,"type":"array"},"language":{"default":"en","description":"Language code for SEO search-volume metrics.","type":"string"},"location":{"default":2840,"description":"Location code for SEO search-volume metrics. The default is the United States.","type":"integer"},"searchPartners":{"description":"When true, include Google search-partner network volume in the reported numbers; when false (the default), count Google search only.","type":"boolean"}},"required":["keywords"],"title":"SEO Search Volume input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"keywords":{"description":"SEO keyword search-volume records. Populated whenever the provider has data for the entity.","items":{"properties":{"bidHigh":{"description":"Upper bound of the estimated paid-search top-of-page bid in USD.","type":"number"},"bidLow":{"description":"Lower bound of the estimated paid-search top-of-page bid in USD.","type":"number"},"competition":{"description":"Paid-search competition level for the keyword. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"competitionIndex":{"description":"Paid-search competition index for the keyword.","type":"integer"},"cpc":{"description":"Average paid-search cost per click in USD. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"keyword":{"description":"Keyword phrase. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"monthlySearches":{"description":"Monthly search-volume history for the keyword.","items":{"properties":{"month":{"description":"Calendar month number for the monthly search-volume record.","type":"integer"},"searchVolume":{"description":"Search volume for the month.","type":"integer"},"year":{"description":"Calendar year for the monthly search-volume record.","type":"integer"}},"type":"object"},"type":"array"},"searchVolume":{"description":"Average monthly search volume for the keyword. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true}},"required":["keyword"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["keywords"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"SEO Search Volume output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"SEO Search Volume","tags":["seo"],"x-payment-info":{"price":{"currency":"USD","max":"0.117000","min":"0.117000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/snapchat.profile":{"post":{"description":"Fetch a Snapchat user's public profile by username: display name, bio, subscriber count, and recent public content.\n\n**Price:** billed per result - \\$1.00 per 1,000 requests base + \\$2.00 per 1,000 results, capped at \\$3.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"snapchat_profile","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"username":"nasa"},"schema":{"additionalProperties":false,"example":{"username":"nasa"},"properties":{"username":{"description":"The Snapchat username or profile URL to look up (e.g. fcbarcelona or https://www.snapchat.com/add/fcbarcelona).","type":"string"}},"required":["username"],"title":"Snapchat profile input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Profile record for the requested Snapchat username (one item). Populated whenever the provider has data for the entity.","items":{"properties":{"bio":{"description":"The profile's public bio / description text. Empty when the profile has none.","type":"string"},"category":{"description":"The profile's category (e.g. \"Government Org\"). Empty when the upstream omits it.","type":"string"},"displayName":{"description":"The profile's public display name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"handle":{"description":"The profile's Snapchat username (add-me handle). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"URL of the profile avatar image, with tracking query params stripped. Empty when the upstream omits it.","type":"string"},"stories":{"description":"Recent public stories on the profile.","items":{"properties":{"id":{"description":"Story identifier.","type":"string"},"storyTitle":{"description":"Story title. Empty when the story has no title.","type":"string"},"thumbnailUrl":{"description":"Story thumbnail image URL, with tracking query params stripped.","type":"string"}},"type":"object"},"type":"array"},"subscribers":{"description":"Public subscriber count.","type":"integer"},"url":{"description":"Canonical public profile URL, with tracking query params stripped. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"website":{"description":"The profile's linked website URL. Empty when the profile has none.","type":"string"}},"required":["url","handle","displayName"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"Whether the profile was found.","type":"boolean"}},"required":["found","data"],"title":"Snapchat profile output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Snapchat Profile","tags":["snapchat"],"x-payment-info":{"price":{"currency":"USD","max":"0.003000","min":"0.001000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/social.finder":{"post":{"description":"Find a person's or brand's profiles across major social networks from a single name, returned as normalized JSON.\n\n**Price:** billed per result - \\$1.00 per 1,000 requests base + \\$2.00 per 1,000 results, capped at \\$21.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"social_finder","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"name":"Elon Musk"},"schema":{"additionalProperties":false,"example":{"limit":3,"name":"Elon Musk"},"properties":{"limit":{"description":"Maximum number of results to return (1-10, default 10). You are billed per result returned, so a lower limit costs less.","maximum":10,"minimum":1,"type":"integer"},"name":{"description":"The profile name or handle to search for across social networks (e.g. johndoe).","type":"string"},"platform":{"description":"Limit the search to one network: askfm, discord, facebook, github, instagram, linkedin, medium, pinterest, steam, threads, tiktok, twitch, or youtube (e.g. instagram); all networks are searched when omitted.","type":"string"}},"required":["name"],"title":"Social Profile Finder input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Profile match records: the queried profile name, the social network, and the matching profile URL when one was found. Populated whenever the provider has data for the entity.","items":{"properties":{"inputProfileName":{"description":"The name that was searched for. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"social":{"description":"The social network checked (e.g. discord, facebook, github). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"socialProfileUrl":{"description":"URL of the matching profile, or null when no account was found on that network.","type":["string","null"]}},"required":["social","socialProfileUrl"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Social Profile Finder output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Social Profile Finder","tags":["social"],"x-payment-info":{"price":{"currency":"USD","max":"0.021000","min":"0.001000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/spotify.album":{"post":{"description":"Fetch a Spotify album's tracklist, play counts, label, and release details by album URL or ID.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"spotify_album","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://open.spotify.com/album/0pgrg7phBbnwGJ2HBEl9EG"},"schema":{"additionalProperties":false,"example":{"url":"https://open.spotify.com/album/0pgrg7phBbnwGJ2HBEl9EG"},"properties":{"id":{"description":"Spotify album ID (alternative to url).","type":"string"},"url":{"description":"Spotify album URL (e.g. https://open.spotify.com/album/0pgrg7phBbnwGJ2HBEl9EG).","type":"string"}},"title":"Spotify Album input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"label":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"name":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"popularity":{"type":"integer"},"releaseDate":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"tracks":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"durationMs":{"type":"integer"},"name":{"type":"string"},"playcount":{"type":"integer"},"uri":{"type":"string"}},"required":["name","playcount","durationMs","uri"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"type":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"uri":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","name","type","label","popularity","releaseDate","uri","tracks"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Spotify Album output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Spotify Album","tags":["spotify"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/spotify.artist":{"post":{"description":"Fetch a Spotify artist's discography (albums, singles, top tracks) and metadata by artist URL or ID.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"spotify_artist","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://open.spotify.com/artist/3DiDSECUqqY1AuBP8qtaIa"},"schema":{"additionalProperties":false,"example":{"url":"https://open.spotify.com/artist/3DiDSECUqqY1AuBP8qtaIa"},"properties":{"id":{"description":"Spotify artist ID (alternative to url).","type":"string"},"url":{"description":"Spotify artist URL (e.g. https://open.spotify.com/artist/3DiDSECUqqY1AuBP8qtaIa).","type":"string"}},"title":"Spotify Artist input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"albums":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"name":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"trackCount":{"type":"integer"},"type":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"uri":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"year":{"description":"Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true}},"required":["id","name","type","year","trackCount","uri"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"topTracks":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"playcount":{"type":"integer"},"uri":{"type":"string"}},"required":["id","name","playcount","uri"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["albums","topTracks"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Spotify Artist output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Spotify Artist","tags":["spotify"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/spotify.play_count":{"post":{"description":"Fetch stream counts and stats for a Spotify track, album, or artist URL.\n\n**Price:** billed per result - \\$3.00 per 1,000 results, capped at \\$3.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"spotify_play_count","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT"},"schema":{"additionalProperties":false,"example":{"url":"https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT"},"properties":{"url":{"description":"Spotify track, album, or artist URL to fetch stream counts for (e.g. https://open.spotify.com/track/3n3Ppam7vgaVa1iaRUc9Lp).","type":"string"}},"required":["url"],"title":"Spotify play count input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Play-count records for the requested Spotify entity (one per track). Populated whenever the provider has data for the entity.","items":{"properties":{"albumName":{"description":"Name of the album the track belongs to. Empty when the upstream omits it.","type":"string"},"artistName":{"description":"Name of the primary artist. Empty when the upstream omits it.","type":"string"},"durationMs":{"description":"Track duration in milliseconds.","type":"integer"},"id":{"description":"The Spotify entity ID. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"name":{"description":"The track (or entity) name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"playCount":{"description":"Total number of streams/plays for the track. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"type":{"description":"The Spotify entity type (e.g. \"track\").","type":"string"},"url":{"description":"Canonical open.spotify.com URL for the entity, with tracking query params stripped. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","name","url","playCount"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"Whether the track/album/artist was found and returned play-count records.","type":"boolean"}},"required":["found","data"],"title":"Spotify play count output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Spotify Play Count","tags":["spotify"],"x-payment-info":{"price":{"currency":"USD","max":"0.003000","min":"0.000000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/spotify.podcast":{"post":{"description":"Fetch a Spotify podcast show's name, publisher, description, rating, and topics by show URL or ID.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"spotify_podcast","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://open.spotify.com/show/3mliji9352UAk3XnWElnDV"},"schema":{"additionalProperties":false,"example":{"url":"https://open.spotify.com/show/3mliji9352UAk3XnWElnDV"},"properties":{"id":{"description":"Spotify podcast show ID (alternative to url).","type":"string"},"url":{"description":"Spotify podcast show URL (e.g. https://open.spotify.com/show/3mliji9352UAk3XnWElnDV).","type":"string"}},"title":"Spotify Podcast input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"averageRating":{"type":"number"},"description":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"name":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"publisher":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"totalRatings":{"type":"integer"},"uri":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","name","description","publisher","averageRating","totalRatings","uri"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Spotify Podcast output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Spotify Podcast","tags":["spotify"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/spotify.podcast_episodes":{"post":{"description":"List a Spotify podcast show's episodes with titles, durations, descriptions, and release dates by show URL or ID.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"spotify_podcast_episodes","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk"},"schema":{"additionalProperties":false,"example":{"url":"https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk"},"properties":{"cursor":{"description":"Pagination cursor from a previous response for subsequent pages.","type":"string"},"id":{"description":"Spotify podcast show ID (alternative to url).","type":"string"},"url":{"description":"Spotify podcast show URL (e.g. https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk).","type":"string"}},"title":"Spotify Podcast Episodes input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"episodes":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"description":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"durationMs":{"type":"integer"},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"name":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"releaseDate":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"uri":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","name","description","durationMs","releaseDate","uri"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"nextCursor":{"type":"string"},"totalCount":{"type":"integer"}},"required":["nextCursor","totalCount","episodes"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Spotify Podcast Episodes output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Spotify Podcast Episodes","tags":["spotify"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/spotify.search":{"post":{"description":"Search Spotify for matching tracks, albums, artists, podcasts, and playlists by keyword.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"spotify_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"query":"my first million"},"schema":{"additionalProperties":false,"example":{"query":"my first million"},"properties":{"query":{"description":"Search term (e.g. \"my first million\").","type":"string"}},"required":["query"],"title":"Spotify Search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"albums":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"uri":{"type":"string"},"year":{"type":"integer"}},"required":["id","name","year","uri"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"artists":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"uri":{"type":"string"},"verified":{"type":"boolean"}},"required":["id","name","verified","uri"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"podcasts":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"publisher":{"type":"string"}},"required":["id","name","publisher"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"tracks":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"name":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"uri":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","name","uri"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["tracks","albums","artists","podcasts"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Spotify Search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Spotify Search","tags":["spotify"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/spotify.track":{"post":{"description":"Fetch a Spotify track's play count, popularity, duration, and album details by track URL or ID.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"spotify_track","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT"},"schema":{"additionalProperties":false,"example":{"url":"https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT"},"properties":{"id":{"description":"Spotify track ID (alternative to url).","type":"string"},"url":{"description":"Spotify track URL (e.g. https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT).","type":"string"}},"title":"Spotify Track input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"durationMs":{"description":"Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"name":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"playcount":{"type":"integer"},"popularity":{"type":"integer"},"shareUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"trackNumber":{"description":"Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"uri":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","name","playcount","popularity","durationMs","trackNumber","uri","shareUrl"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Spotify Track output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Spotify Track","tags":["spotify"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/substack.posts":{"post":{"description":"Pull posts from any Substack publication by its URL, or pass a single post URL (…/p/slug) to fetch just that one article. Returns title, subtitle, publish date, paywall status, word count, engagement (reactions, comments, restacks), author profile, and full article HTML.\n\n**Price:** billed per result - \\$5.00 per 1,000 requests base + \\$1.56 per 1,000 results, capped at \\$161.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"substack_posts","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"url":"https://www.astralcodexten.com"},"schema":{"additionalProperties":false,"example":{"limit":3,"url":"https://www.astralcodexten.com"},"properties":{"contentType":{"default":"all","description":"Restrict to a single post type, or 'all' (e.g. newsletter).","enum":["all","newsletter","podcast","thread"],"type":"string"},"endDate":{"description":"Only return posts published on or before this date, format YYYY-MM-DD (e.g. 2024-12-31). Applied within the most recent 'limit' posts scanned.","type":"string"},"includeContent":{"default":true,"description":"Include the full article body as HTML. Set false for metadata only (e.g. false).","type":"boolean"},"limit":{"description":"Maximum number of recent posts to return when given a publication URL (1-100, default 25); ignored for a single post URL, which always returns that one post. You are billed per post returned, so a lower limit costs less.","maximum":100,"minimum":1,"type":"integer"},"onlyFree":{"default":false,"description":"Return only free (non-paywalled) posts (e.g. true).","type":"boolean"},"startDate":{"description":"Only return posts published on or after this date, format YYYY-MM-DD (e.g. 2024-01-01). Applied within the most recent 'limit' posts scanned, so raise 'limit' to reach older date ranges.","type":"string"},"url":{"description":"Either a Substack publication URL / custom domain to fetch its recent posts (e.g. https://www.astralcodexten.com), OR a single post URL to fetch just that one article with full content (e.g. https://www.astralcodexten.com/p/your-book-review).","type":"string"}},"required":["url"],"title":"Substack posts input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Result payload, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Post records: title, subtitle, URL, publish date, paywall status, word count, engagement (reactions, comments, restacks), author profile, publication info, and full article HTML when requested. Populated whenever the provider has data for the entity.","items":{"properties":{"authorHandle":{"description":"Handle of the post author. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorName":{"description":"Display name of the post author. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"commentCount":{"description":"Number of comments on the post.","type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"description":{"description":"Post description or article HTML/summary. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"Cover image URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"isPaid":{"description":"Whether the post is behind a paywall.","type":"boolean"},"postId":{"description":"Substack post identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"postType":{"description":"Post type (e.g. newsletter, podcast, thread). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"reactionCount":{"description":"Number of reactions on the post.","type":"integer"},"subtitle":{"description":"Post subtitle or deck. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Post title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Canonical post URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"wordcount":{"description":"Approximate word count of the article.","type":"integer"}},"required":["title","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"Whether any posts were found for the request.","type":"boolean"}},"required":["found","data"],"title":"Substack posts output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Substack Posts","tags":["substack"],"x-payment-info":{"price":{"currency":"USD","max":"0.161000","min":"0.005000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/threads.post":{"post":{"description":"Fetch a single Threads post by URL: text, author, engagement counts, and timestamp.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"threads_post","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.threads.com/@aaronparnas/post/DZxPYVFkYSq"},"schema":{"additionalProperties":false,"example":{"url":"https://www.threads.com/@aaronparnas/post/DZxPYVFkYSq"},"properties":{"url":{"description":"The full URL of the Threads post to fetch (e.g. https://www.threads.com/@zuck/post/C8yKXdRxKqK).","type":"string"}},"required":["url"],"title":"Threads post input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The post record, or null when nothing was found.","oneOf":[{"type":"null"},{"properties":{"code":{"description":"Threads post shortcode.","type":"string"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"fullName":{"description":"Display name of the author. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Post identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likeCount":{"description":"Number of likes on the post.","type":"integer"},"quoteCount":{"description":"Number of quote posts.","type":"integer"},"replyCount":{"description":"Number of replies to the post.","type":"integer"},"repostCount":{"description":"Number of reposts of the post.","type":"integer"},"text":{"description":"Post text content. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"username":{"description":"Username of the author. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","code","text","username","fullName","likeCount","replyCount","repostCount","quoteCount","createdUtc"],"type":"object"}]},"found":{"description":"True when the post was found; false when the lookup returned nothing.","type":"boolean"}},"required":["found","data"],"title":"Threads post output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Threads Post","tags":["threads"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/threads.profile":{"post":{"description":"Fetch a Threads user's public profile (bio, follower count, verification, profile picture) by username.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"threads_profile","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"username":"zuck"},"schema":{"additionalProperties":false,"example":{"username":"zuck"},"properties":{"username":{"description":"The Threads username to look up, without the @ prefix (e.g. zuck).","type":"string"}},"required":["username"],"title":"Threads profile input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"biography":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"followerCount":{"type":"integer"},"fullName":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"isPrivate":{"type":"boolean"},"isVerified":{"type":"boolean"},"profilePicUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"username":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","username","fullName","biography","followerCount","isVerified","isPrivate","profilePicUrl"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Threads profile output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Threads Profile","tags":["threads"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/threads.search":{"post":{"description":"Search public Threads posts by keyword or hashtag and get normalized post records: text, author, and engagement.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"threads_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"query":"trump"},"schema":{"additionalProperties":false,"example":{"query":"trump"},"properties":{"query":{"description":"Keyword or hashtag to search public Threads posts for; the # prefix is optional (e.g. AI agents).","type":"string"}},"required":["query"],"title":"Threads search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Wrapper holding the posts array, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"posts":{"description":"Matching public post records: text, author, engagement counts, timestamp, and URL. Populated whenever the provider has data for the entity.","items":{"properties":{"code":{"description":"Threads post shortcode.","type":"string"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"fullName":{"description":"Display name of the author. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Post identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likeCount":{"description":"Number of likes on the post.","type":"integer"},"replyCount":{"description":"Number of replies to the post.","type":"integer"},"repostCount":{"description":"Number of reposts of the post.","type":"integer"},"text":{"description":"Post text content. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Canonical URL of the post. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"username":{"description":"Username of the author. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","code","text","username","fullName","likeCount","replyCount","repostCount","createdUtc","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["posts"],"type":"object"}]},"found":{"description":"True when matching posts were found; false when the search returned nothing.","type":"boolean"}},"required":["found","data"],"title":"Threads search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Threads Search","tags":["threads"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/threads.search_users":{"post":{"description":"Search Threads users by name or username and get normalized profile records: username, full name, verification, and picture.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"threads_search_users","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"query":"shams"},"schema":{"additionalProperties":false,"example":{"query":"shams"},"properties":{"query":{"description":"The name or username to search Threads users for.","type":"string"}},"required":["query"],"title":"Threads User Search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"users":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"fullName":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"isVerified":{"type":"boolean"},"profilePicUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"username":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","username","fullName","isVerified","profilePicUrl"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["users"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Threads User Search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Threads User Search","tags":["threads"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/threads.user_posts":{"post":{"description":"List a Threads user's recent public posts by username: text, engagement counts, and post URLs.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"threads_user_posts","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"trendspider"},"schema":{"additionalProperties":false,"example":{"handle":"trendspider"},"properties":{"handle":{"description":"The Threads username to list posts for, without the @ prefix.","type":"string"}},"required":["handle"],"title":"Threads User Posts input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Wrapper holding the posts array, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"posts":{"description":"The user's recent posts. Populated whenever the provider has data for the entity.","items":{"properties":{"code":{"description":"Threads post shortcode.","type":"string"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"id":{"description":"Post identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likeCount":{"description":"Number of likes on the post.","type":"integer"},"quoteCount":{"description":"Number of quote posts.","type":"integer"},"replyCount":{"description":"Number of replies to the post.","type":"integer"},"repostCount":{"description":"Number of reposts of the post.","type":"integer"},"text":{"description":"Post text content. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Canonical URL of the post. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"username":{"description":"Username of the author. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","code","url","text","username","likeCount","replyCount","repostCount","quoteCount","createdUtc"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["posts"],"type":"object"}]},"found":{"description":"True when the user's posts were found; false when the lookup returned nothing.","type":"boolean"}},"required":["found","data"],"title":"Threads User Posts output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Threads User Posts","tags":["threads"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tiktok.ad_library_ad":{"post":{"description":"Fetch full details for a single TikTok ad (brand, title, spend, CTR, objectives, landing page, and video info).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"tiktok_ad_library_ad","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"adId":"7648493525660270600"},"schema":{"additionalProperties":false,"example":{"adId":"7648493525660270600"},"properties":{"adId":{"description":"TikTok Top Ads material/ad ID, or a Top Ads detail URL (e.g. 7648493525660270600).","type":"string"}},"required":["adId"],"title":"TikTok Ad Library Ad input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"adId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"adTitle":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"brandName":{"type":"string"},"comments":{"type":"integer"},"cost":{"type":"number"},"coverUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"ctr":{"type":"number"},"industry":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"landingPage":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"type":"integer"},"objective":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"shares":{"type":"integer"},"videoUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["adId","adTitle","brandName","cost","ctr","likes","comments","shares","industry","objective","landingPage","videoUrl","coverUrl"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"TikTok Ad Library Ad output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"TikTok Ad Library Ad","tags":["tiktok"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tiktok.ad_library_search":{"post":{"description":"Search TikTok's ad library by keyword (top ads with brand, title, spend, CTR, likes, and video info).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"tiktok_ad_library_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"objective":"conversions","query":"spotify"},"schema":{"additionalProperties":false,"example":{"objective":"conversions","query":"spotify"},"properties":{"adFormat":{"description":"Ad format filter.","enum":["spark_ads","non_spark_ads"],"type":"string"},"adLanguage":{"description":"Ad language filter.","enum":["en","es","ar","vi","th","de","id","pt","fr","ms","nl","ja","it","ro","zh-Hant","ko"],"type":"string"},"advertiserName":{"description":"Filter to a specific advertiser by name (searches the public TikTok Ads Library by advertiser).","type":"string"},"cursor":{"description":"Page number for pagination (defaults to 1).","type":"string"},"duration":{"description":"Video duration bucket filter.","enum":["under_10s","10_20s","20_30s","30_40s","40_50s","over_50s"],"type":"string"},"industry":{"description":"Advertiser industry filter.","enum":["apparel_accessories","appliances","apps","baby_kids_maternity","beauty_personal_care","business_services","ecommerce_non_app","education","financial_services","food_beverage","games","health","home_improvement","household_products","life_services","news_entertainment","pets","sports_outdoor","tech_electronics","travel","vehicle_transportation"],"type":"string"},"likes":{"description":"Likes percentile bucket filter (top_1_20 is the top-performing 20 percent).","enum":["top_1_20","top_21_40","top_41_60","top_61_80","top_81_100"],"type":"string"},"limit":{"description":"Results per page, max 50 (defaults to 20).","type":"string"},"objective":{"description":"Campaign objective filter.","enum":["app_installs","conversions","lead_generation","product_sales","reach","traffic","video_views"],"type":"string"},"orderBy":{"description":"Sort metric: for_you, impression, play_2s_rate, play_6s_rate, cvr, ctr, or like.","type":"string"},"period":{"description":"Time window for top ads: 7, 30, or 180 days.","type":"string"},"query":{"description":"Keyword to search ad titles and content (e.g. spotify).","type":"string"},"region":{"description":"Country code (defaults to US).","type":"string"}},"required":["query"],"title":"TikTok Ad Library Search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"ads":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"adId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"adTitle":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"brandName":{"type":"string"},"cost":{"type":"number"},"coverUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"ctr":{"type":"number"},"industry":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"type":"integer"},"objective":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"videoUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["adId","adTitle","brandName","cost","ctr","likes","industry","objective","videoUrl","coverUrl"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"hasMore":{"type":"boolean"},"nextCursor":{"type":"string"},"total":{"type":"integer"}},"required":["nextCursor","hasMore","total","ads"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"TikTok Ad Library Search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"TikTok Ad Library Search","tags":["tiktok"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tiktok.audience_demographics":{"post":{"description":"Get the audience country breakdown (follower count and share per country) for a TikTok creator by handle.\n\n**Price:** \\$16.25 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"tiktok_audience_demographics","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"shakira"},"schema":{"additionalProperties":false,"example":{"handle":"shakira"},"properties":{"handle":{"description":"TikTok username without the leading @ (e.g. \"shakira\").","type":"string"}},"required":["handle"],"title":"TikTok Audience Demographics input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"audienceLocations":{"items":{"properties":{"count":{"type":"integer"},"country":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"countryCode":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"percentage":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["country","countryCode","count","percentage"],"type":"object"},"type":"array"}},"required":["audienceLocations"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"TikTok Audience Demographics output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"TikTok Audience Demographics","tags":["tiktok"],"x-payment-info":{"price":{"currency":"USD","max":"0.052000","min":"0.016250","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tiktok.comment_replies":{"post":{"description":"List the replies to a TikTok comment with cursor pagination (text, author, likes).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"tiktok_comment_replies","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"commentId":"7623828115408274207","url":"https://www.tiktok.com/@stoolpresidente/video/7623818255903329566"},"schema":{"additionalProperties":false,"example":{"commentId":"7623828115408274207","url":"https://www.tiktok.com/@stoolpresidente/video/7623818255903329566"},"properties":{"commentId":{"description":"TikTok comment ID (the comment's cid from the comments endpoint).","type":"string"},"cursor":{"description":"Pagination cursor from a previous response.","type":"string"},"url":{"description":"TikTok video URL the comment belongs to.","type":"string"}},"required":["commentId","url"],"title":"TikTok Comment Replies input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"comments":{"items":{"properties":{"author":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"type":"integer"},"text":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","text","author","likes","createdUtc"],"type":"object"},"type":"array"},"nextCursor":{"type":"string"}},"required":["comments","nextCursor"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"TikTok Comment Replies output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"TikTok Comment Replies","tags":["tiktok"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tiktok.followers":{"post":{"description":"List the followers of a TikTok account by username, returning each follower's profile basics.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"tiktok_followers","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"stoolpresidente"},"schema":{"additionalProperties":false,"example":{"handle":"stoolpresidente"},"properties":{"cursor":{"description":"Pagination cursor from a previous response's nextCursor, to fetch the next page of followers.","type":"string"},"handle":{"description":"TikTok username whose followers to list, without the @ prefix (e.g. stoolpresidente).","type":"string"}},"required":["handle"],"title":"TikTok Followers input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"followers":{"items":{"properties":{"avatarUrl":{"type":"string"},"followerCount":{"type":"integer"},"followingCount":{"type":"integer"},"nickname":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"region":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"userId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"username":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["userId","username","nickname","region","followerCount","followingCount","avatarUrl"],"type":"object"},"type":"array"},"nextCursor":{"type":"string"},"total":{"type":"integer"}},"required":["nextCursor","total","followers"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"TikTok Followers output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"TikTok Followers","tags":["tiktok"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tiktok.following":{"post":{"description":"List the accounts a TikTok user follows (handle, display name, follower count, bio) by username.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"tiktok_following","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"stoolpresidente"},"schema":{"additionalProperties":false,"example":{"handle":"stoolpresidente"},"properties":{"cursor":{"description":"Pagination cursor from a previous response.","type":"string"},"handle":{"description":"TikTok username without the leading @ (e.g. \"stoolpresidente\").","type":"string"}},"required":["handle"],"title":"TikTok Following input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"following":{"items":{"properties":{"bio":{"type":"string"},"displayName":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"followers":{"type":"integer"},"handle":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"region":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"videos":{"type":"integer"}},"required":["id","handle","displayName","followers","videos","region","bio"],"type":"object"},"type":"array"}},"required":["following"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"TikTok Following output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"TikTok Following","tags":["tiktok"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tiktok.hashtag_videos":{"post":{"description":"List recent TikTok videos for a hashtag (creator, caption, views, likes, shares).\n\n**Price:** \\$3.25 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"tiktok_hashtag_videos","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"hashtag":"cooking","limit":3},"schema":{"additionalProperties":false,"example":{"hashtag":"cooking","limit":3},"properties":{"hashtag":{"description":"TikTok hashtag to fetch videos for, without the # prefix (e.g. booktok).","type":"string"},"limit":{"description":"Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.","maximum":20,"minimum":1,"type":"integer"}},"required":["hashtag"],"title":"TikTok hashtag videos input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Recent TikTok video records for the hashtag. Populated whenever the provider has data for the entity.","items":{"properties":{"authorHandle":{"description":"Username of the video's creator, without the @ prefix. Empty when the upstream omits it.","type":"string"},"commentCount":{"description":"Number of comments on the video.","type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"id":{"description":"The video's numeric TikTok ID, as a string. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"URL of the video's cover/thumbnail image, with tracking query params stripped. Empty when the upstream omits it.","type":"string"},"likeCount":{"description":"Number of likes on the video.","type":"integer"},"playCount":{"description":"Number of views/plays of the video.","type":"integer"},"shareCount":{"description":"Number of shares of the video.","type":"integer"},"text":{"description":"The video caption text. Empty for videos with no caption.","type":"string"},"url":{"description":"Canonical tiktok.com URL of the video, with tracking query params stripped. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","url","createdUtc"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"Whether any videos were returned for the hashtag.","type":"boolean"}},"required":["found","data"],"title":"TikTok hashtag videos output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"TikTok Hashtag Videos","tags":["tiktok"],"x-payment-info":{"price":{"currency":"USD","max":"0.060000","min":"0.003250","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tiktok.live":{"post":{"description":"Check whether a TikTok creator is live and get the current live room (title, viewers, start time) by handle.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"tiktok_live","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"thejustalex"},"schema":{"additionalProperties":false,"example":{"handle":"thejustalex"},"properties":{"handle":{"description":"TikTok username without the leading @ (e.g. \"thejustalex\").","type":"string"}},"required":["handle"],"title":"TikTok Live input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"coverUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"displayName":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"enterCount":{"type":"integer"},"handle":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"roomId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"startTime":{"type":"integer"},"status":{"type":"integer"},"title":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"viewers":{"type":"integer"}},"required":["handle","displayName","roomId","title","coverUrl","startTime","status","viewers","enterCount"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"TikTok Live output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"TikTok Live","tags":["tiktok"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tiktok.profile":{"post":{"description":"Fetch a TikTok creator's public profile (followers, likes, bio, verification) by handle.\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 3 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"tiktok_profile","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"zachking"},"schema":{"additionalProperties":false,"example":{"handle":"zachking"},"properties":{"handle":{"description":"TikTok username without the leading @ (e.g. \"stoolpresidente\").","type":"string"}},"required":["handle"],"title":"TikTok profile input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"avatarUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"bio":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"displayName":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"followers":{"type":"integer"},"following":{"type":"integer"},"handle":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"type":"integer"},"verified":{"type":"boolean"},"videos":{"type":"integer"}},"required":["handle","displayName","followers","following","likes","videos","bio","verified","avatarUrl"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"TikTok profile output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"TikTok Profile","tags":["tiktok"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.001000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tiktok.profile_region":{"post":{"description":"Resolve the home region (country) of a TikTok creator by handle.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"tiktok_profile_region","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"stoolpresidente"},"schema":{"additionalProperties":false,"example":{"handle":"stoolpresidente"},"properties":{"handle":{"description":"TikTok username without the leading @ (e.g. \"stoolpresidente\").","type":"string"}},"required":["handle"],"title":"TikTok Profile Region input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"handle":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"profileUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"region":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["handle","profileUrl","region"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"TikTok Profile Region output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"TikTok Profile Region","tags":["tiktok"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tiktok.profile_videos":{"post":{"description":"List a TikTok creator's recent videos (views, likes, comments) by handle with cursor pagination.\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 3 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"tiktok_profile_videos","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"zachking"},"schema":{"additionalProperties":false,"example":{"handle":"zachking"},"properties":{"cursor":{"description":"Pagination cursor from a previous response's nextCursor.","type":"string"},"handle":{"description":"TikTok username without the leading @.","type":"string"}},"required":["handle"],"title":"TikTok profile videos input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"nextCursor":{"type":"string"},"videos":{"items":{"properties":{"caption":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"comments":{"type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"URL of the video's cover/thumbnail image. A signed, short-lived TikTok CDN URL (typically expires within about a day; query params are load-bearing and kept intact), often served as HEIC rather than JPEG, so fetch it promptly and transcode if you need broad browser support. Absent when the upstream provides no cover.","type":"string"},"likes":{"type":"integer"},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"views":{"type":"integer"}},"required":["id","url","caption","views","likes","comments","createdUtc"],"type":"object"},"type":"array"}},"required":["videos","nextCursor"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"TikTok profile videos output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"TikTok Profile Videos","tags":["tiktok"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.001000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tiktok.search_hashtag":{"post":{"description":"Search TikTok by hashtag and get matching videos (caption, views, likes, comments, shares) as normalized JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"tiktok_search_hashtag","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"query":"recipe"},"schema":{"additionalProperties":false,"example":{"query":"recipe"},"properties":{"cursor":{"description":"Pagination cursor from a previous response.","type":"string"},"query":{"description":"Hashtag or keyword to search for (without the leading #).","type":"string"}},"required":["query"],"title":"TikTok Hashtag Search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"videos":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"author":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"caption":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"comments":{"type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"type":"integer"},"shares":{"type":"integer"},"views":{"type":"integer"}},"required":["id","caption","author","views","likes","comments","shares","createdUtc"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["videos"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"TikTok Hashtag Search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"TikTok Hashtag Search","tags":["tiktok"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tiktok.search_keyword":{"post":{"description":"Search TikTok by keyword and get matching videos (caption, views, likes, comments, shares) as normalized JSON.\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 3 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"tiktok_search_keyword","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"query":"cooking"},"schema":{"additionalProperties":false,"example":{"query":"cooking"},"properties":{"cursor":{"description":"Pagination cursor from a previous response.","type":"string"},"datePosted":{"description":"Time frame filter (e.g. 0=any, 1=past 24h, 7=past week).","type":"string"},"query":{"description":"The keyword to search TikTok for.","type":"string"},"sortBy":{"description":"Sort order (e.g. 0=relevance, 1=most liked).","type":"string"}},"required":["query"],"title":"TikTok keyword search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"videos":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"caption":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"comments":{"type":"integer"},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"type":"integer"},"region":{"type":"string"},"shares":{"type":"integer"},"views":{"type":"integer"}},"required":["id","caption","region","views","likes","comments","shares"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["videos"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"TikTok keyword search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"TikTok Keyword Search","tags":["tiktok"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.001000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tiktok.search_top":{"post":{"description":"Search TikTok's top results for a keyword (caption, views, likes, comments, shares) with cursor pagination.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"tiktok_search_top","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"query":"funny"},"schema":{"additionalProperties":false,"example":{"query":"funny"},"properties":{"cursor":{"description":"Pagination cursor from a previous response.","type":"string"},"publishTime":{"description":"Time-frame filter: yesterday, this-week, this-month, last-3-months, last-6-months, all-time.","type":"string"},"query":{"description":"Keyword to search for (e.g. \"funny\").","type":"string"},"region":{"description":"2-letter country code for the proxy location (e.g. US, GB, FR).","type":"string"},"sortBy":{"description":"Sort order: relevance, most-liked, date-posted.","type":"string"}},"required":["query"],"title":"TikTok Top Search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"author":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"caption":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"comments":{"type":"integer"},"contentType":{"type":"string"},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"type":"integer"},"shares":{"type":"integer"},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"views":{"type":"integer"}},"required":["id","caption","contentType","url","author","views","likes","comments","shares"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"nextCursor":{"type":"string"}},"required":["items","nextCursor"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"TikTok Top Search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"TikTok Top Search","tags":["tiktok"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tiktok.search_users":{"post":{"description":"Search TikTok accounts by keyword (handle, nickname, follower count) with cursor pagination.\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 3 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"tiktok_search_users","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"query":"chef"},"schema":{"additionalProperties":false,"example":{"query":"chef"},"properties":{"cursor":{"description":"Pagination cursor from a previous response's nextCursor.","type":"string"},"query":{"description":"The keyword to search TikTok accounts for.","type":"string"}},"required":["query"],"title":"TikTok user search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"nextCursor":{"type":"string"},"users":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"followers":{"type":"integer"},"following":{"type":"integer"},"handle":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"nickname":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"userId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["handle","nickname","userId","followers","following"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["users","nextCursor"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"TikTok user search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"TikTok User Search","tags":["tiktok"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.001000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tiktok.song":{"post":{"description":"Fetch details for a TikTok song or sound (title, author, duration, cover art, and how many videos use it).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"tiktok_song","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"clipId":"7439295283975702544"},"schema":{"additionalProperties":false,"example":{"clipId":"7439295283975702544"},"properties":{"clipId":{"description":"The clip identifier for the song, found in TikTok music URLs (e.g. 7439295283975702544).","type":"string"}},"required":["clipId"],"title":"TikTok Song input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"album":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"author":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"coverUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"duration":{"description":"Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"isOriginal":{"type":"boolean"},"shareUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"songId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"videoCount":{"type":"integer"}},"required":["songId","title","author","album","duration","isOriginal","videoCount","coverUrl","shareUrl"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"TikTok Song output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"TikTok Song","tags":["tiktok"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tiktok.song_videos":{"post":{"description":"List TikTok videos that use a given song or sound (with descriptions, authors, and engagement stats).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"tiktok_song_videos","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"clipId":"7439295283975702544"},"schema":{"additionalProperties":false,"example":{"clipId":"7439295283975702544"},"properties":{"clipId":{"description":"The song ID found in TikTok music URLs (e.g. 7439295283975702544).","type":"string"},"cursor":{"description":"Pagination cursor for retrieving the next page of results.","type":"string"}},"required":["clipId"],"title":"TikTok Song Videos input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"hasMore":{"type":"integer"},"nextCursor":{"type":"string"},"videos":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"authorHandle":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorName":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"commentCount":{"type":"integer"},"createTime":{"type":"integer"},"description":{"type":"string"},"likeCount":{"type":"integer"},"playCount":{"type":"integer"},"shareCount":{"type":"integer"},"videoId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["videoId","description","authorHandle","authorName","createTime","playCount","likeCount","commentCount","shareCount"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["nextCursor","hasMore","videos"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"TikTok Song Videos output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"TikTok Song Videos","tags":["tiktok"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tiktok.trending_feed":{"post":{"description":"Get TikTok's trending feed for a region (caption, views, likes, comments, author) as normalized JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"tiktok_trending_feed","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"region":"US"},"schema":{"additionalProperties":false,"example":{"region":"US"},"properties":{"region":{"description":"2-letter country code for the proxy location (e.g. \"US\").","type":"string"},"trim":{"description":"Set to true to return a simplified response.","type":"string"}},"required":["region"],"title":"TikTok Trending Feed input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"videos":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"author":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"caption":{"type":"string"},"comments":{"type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"type":"integer"},"region":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"shares":{"type":"integer"},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"views":{"type":"integer"}},"required":["id","caption","url","region","author","views","likes","comments","shares","createdUtc"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["videos"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"TikTok Trending Feed output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"TikTok Trending Feed","tags":["tiktok"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tiktok.video":{"post":{"description":"Fetch a single TikTok video by URL with its caption and engagement counts (views, likes, comments, shares, saves).\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 3 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"tiktok_video","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.tiktok.com/@mrbeast/video/7654638524729216287?_r=1\u0026u_code=elgjf3ff8cajhk\u0026preview_pb=0\u0026sharer_language=en\u0026_d=elh6737j6kjl71\u0026share_item_id=7654638524729216287\u0026source=h5_m"},"schema":{"additionalProperties":false,"example":{"url":"https://www.tiktok.com/@mrbeast/video/7654638524729216287?_r=1\u0026u_code=elgjf3ff8cajhk\u0026preview_pb=0\u0026sharer_language=en\u0026_d=elh6737j6kjl71\u0026share_item_id=7654638524729216287\u0026source=h5_m"},"properties":{"url":{"description":"Full TikTok video URL.","type":"string"}},"required":["url"],"title":"TikTok video input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"caption":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"comments":{"type":"integer"},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"URL of the video's cover/thumbnail image. A signed, short-lived TikTok CDN URL (typically expires within about a day; query params are load-bearing and kept intact), often served as HEIC rather than JPEG, so fetch it promptly and transcode if you need broad browser support. Absent when the upstream provides no cover.","type":"string"},"likes":{"type":"integer"},"region":{"type":"string"},"saves":{"type":"integer"},"shares":{"type":"integer"},"views":{"type":"integer"}},"required":["id","caption","region","views","likes","comments","shares","saves"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"TikTok video output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"TikTok Video","tags":["tiktok"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.001000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tiktok.video_comments":{"post":{"description":"List the comments on a TikTok video by URL with cursor pagination (text, author, likes, reply count).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"tiktok_video_comments","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.tiktok.com/@zachking/video/7650468599424945422?_r=1\u0026u_code=f0hj7d780760m9\u0026preview_pb=0\u0026sharer_language=en\u0026_d=f0hj7blh067h71\u0026share_item_id=7650468599424945422\u0026source=h5_m"},"schema":{"additionalProperties":false,"example":{"url":"https://www.tiktok.com/@zachking/video/7650468599424945422?_r=1\u0026u_code=f0hj7d780760m9\u0026preview_pb=0\u0026sharer_language=en\u0026_d=f0hj7blh067h71\u0026share_item_id=7650468599424945422\u0026source=h5_m"},"properties":{"cursor":{"description":"Pagination cursor from a previous response's nextCursor.","type":"string"},"url":{"description":"Full TikTok video URL.","type":"string"}},"required":["url"],"title":"TikTok video comments input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"comments":{"items":{"properties":{"author":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"type":"integer"},"replies":{"type":"integer"},"text":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","text","author","likes","replies","createdUtc"],"type":"object"},"type":"array"},"nextCursor":{"type":"string"}},"required":["comments","nextCursor"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"TikTok video comments output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"TikTok Video Comments","tags":["tiktok"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tiktok.video_transcript":{"post":{"description":"Fetch the spoken-word transcript of a TikTok video by URL.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"tiktok_video_transcript","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.tiktok.com/@washingtonpost/video/7609177768793787679"},"schema":{"additionalProperties":false,"example":{"url":"https://www.tiktok.com/@washingtonpost/video/7609177768793787679"},"properties":{"url":{"description":"Full TikTok video URL.","type":"string"}},"required":["url"],"title":"TikTok video transcript input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"language":{"type":"string"},"transcript":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["transcript","language"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"TikTok video transcript output","type":"object","x-anyapi-heavy":true},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"TikTok Video Transcript","tags":["tiktok"],"x-payment-info":{"price":{"currency":"USD","max":"0.032500","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tiktok_shop.product":{"post":{"description":"Fetch TikTok Shop product details (title, price, sales, seller, and ratings) from a product URL.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"tiktok_shop_product","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.tiktok.com/shop/pdp/goli-ashwagandha-gummies-with-vitamin-d-ksm-66-vegan-non-gmo/1729587769570529799"},"schema":{"additionalProperties":false,"example":{"url":"https://www.tiktok.com/shop/pdp/goli-ashwagandha-gummies-with-vitamin-d-ksm-66-vegan-non-gmo/1729587769570529799"},"properties":{"region":{"description":"Two-letter country code for the proxy location used to access region-specific products (e.g. US, GB, FR). Defaults to US.","type":"string"},"url":{"description":"TikTok Shop product detail page URL (e.g. https://www.tiktok.com/shop/pdp/.../1729587769570529799).","type":"string"}},"required":["url"],"title":"TikTok Shop Product input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"currency":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"originalPrice":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"price":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"productId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"rating":{"type":"number"},"reviewCount":{"type":"integer"},"sellerLocation":{"type":"string"},"sellerName":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"soldCount":{"type":"integer"},"title":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["productId","title","price","originalPrice","currency","soldCount","rating","reviewCount","sellerName","sellerLocation"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"TikTok Shop Product output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"TikTok Shop Product","tags":["tiktok-shop"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tiktok_shop.product_reviews":{"post":{"description":"Fetch customer reviews for a TikTok Shop product by URL (rating, text, reviewer, country, and verified-purchase flag).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"tiktok_shop_product_reviews","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.tiktok.com/shop/pdp/cat-nail-clipper-by-potaroma-adjustable-sizes-built-in-file-safe-for-kittens-cats/1731578642912612516"},"schema":{"additionalProperties":false,"example":{"url":"https://www.tiktok.com/shop/pdp/cat-nail-clipper-by-potaroma-adjustable-sizes-built-in-file-safe-for-kittens-cats/1731578642912612516"},"properties":{"page":{"default":1,"description":"1-based results page. Use with hasMore in the output to paginate.","minimum":1,"type":"integer"},"region":{"description":"Two-letter country code of the product's shop region (e.g. US). Strongly recommended for correct results.","type":"string"},"url":{"description":"TikTok Shop product URL (e.g. https://www.tiktok.com/shop/pdp/.../1729385633899532161).","type":"string"}},"required":["url"],"title":"TikTok Shop product reviews input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Wrapper holding the reviews array plus totals, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"hasMore":{"description":"True when more reviews are available beyond this page.","type":"boolean"},"rating":{"description":"Overall product score (1-5).","type":"number"},"reviews":{"description":"Product reviews. Populated whenever the provider has data for the entity.","items":{"properties":{"country":{"description":"Reviewer's country code.","type":"string"},"createdUtc":{"description":"Review time as epoch milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"id":{"description":"Review identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"rating":{"description":"Star rating for this review (1-5).","type":"number"},"reviewerName":{"description":"Display name of the reviewer. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"sku":{"description":"Variant bought, e.g. \"Color: Black\". Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"text":{"description":"Review text content. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"verifiedPurchase":{"description":"True when the review is from a verified purchase.","type":"boolean"}},"required":["id","rating","text","reviewerName","country","sku","verifiedPurchase","createdUtc"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"totalReviews":{"description":"Total number of reviews for the product.","type":"integer"}},"required":["totalReviews","rating","hasMore","reviews"],"type":"object"}]},"found":{"description":"True when reviews were found; false when the lookup returned nothing.","type":"boolean"}},"required":["found","data"],"title":"TikTok Shop product reviews output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"TikTok Shop Product Reviews","tags":["tiktok-shop"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tiktok_shop.search":{"post":{"description":"Search TikTok Shop products by keyword across 15 countries: price, sales, rating, and seller info per product, in one normalized response.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"tiktok_shop_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"query":"phone case"},"schema":{"additionalProperties":false,"example":{"limit":3,"query":"phone case"},"properties":{"country":{"default":"US","description":"Country code of the TikTok Shop market to search (e.g. US).","enum":["US","VN","TH","PH","MY","ID","GB","SG","ES","MX","DE","IT","FR","BR","JP"],"type":"string"},"limit":{"description":"Maximum number of results to return (1-10, default 10). You are billed per result returned, so a lower limit costs less.","maximum":10,"minimum":1,"type":"integer"},"query":{"description":"Search keyword for TikTok Shop products (e.g. wireless earbuds).","type":"string"}},"required":["query"],"title":"TikTok Shop search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Product records matching the search query: id, title, price, sales count, rating, seller, and product URL. Populated whenever the provider has data for the entity.","items":{"properties":{"currency":{"description":"ISO currency name, e.g. USD.","type":"string"},"originalPrice":{"description":"Pre-discount list price (0 when not on sale).","type":"number"},"price":{"description":"Current sale price.","type":"number"},"productId":{"description":"TikTok Shop product id. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"rating":{"description":"Average review score.","type":"number"},"shopName":{"description":"Seller shop name.","type":"string"},"soldCount":{"description":"Units sold.","type":"integer"},"title":{"description":"Product title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Canonical product detail page URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["productId","title"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"TikTok Shop search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"TikTok Shop Search","tags":["tiktok-shop"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tiktok_shop.shop_products":{"post":{"description":"List every product of a TikTok Shop store by URL (title, price, sales, and rating per product plus shop-level stats) with cursor pagination.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"tiktok_shop_shop_products","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.tiktok.com/shop/store/goli-nutrition/7495794203056835079"},"schema":{"additionalProperties":false,"example":{"url":"https://www.tiktok.com/shop/store/goli-nutrition/7495794203056835079"},"properties":{"cursor":{"description":"Opaque pagination cursor from a previous response's nextCursor.","type":"string"},"region":{"description":"Two-letter country code of the store's market (e.g. US).","type":"string"},"sortBy":{"default":"top","description":"Product ordering within the store.","enum":["top","new_releases"],"type":"string"},"url":{"description":"TikTok Shop store URL (e.g. https://www.tiktok.com/shop/store/...).","type":"string"}},"required":["url"],"title":"TikTok Shop store products input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"hasMore":{"type":"boolean"},"nextCursor":{"type":"string"},"productCount":{"type":"integer"},"products":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"currency":{"type":"string"},"originalPrice":{"type":"number"},"price":{"type":"number"},"productId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"rating":{"type":"number"},"reviewCount":{"type":"integer"},"soldCount":{"type":"integer"},"title":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["productId","title","price","originalPrice","currency","rating","reviewCount","soldCount","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"shopName":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"shopRating":{"type":"number"},"soldCount":{"type":"integer"}},"required":["shopName","shopRating","soldCount","productCount","hasMore","nextCursor","products"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"TikTok Shop store products output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"TikTok Shop Store Products","tags":["tiktok-shop"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tiktok_shop.user_showcase":{"post":{"description":"List the TikTok Shop products a creator showcases (title, price, rating, and sales per product).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"tiktok_shop_user_showcase","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"mrtiktokreviews"},"schema":{"additionalProperties":false,"example":{"handle":"mrtiktokreviews"},"properties":{"cursor":{"description":"Pagination token for retrieving subsequent product pages.","type":"string"},"handle":{"description":"The handle of the TikTok user (e.g. mrtiktokreviews).","type":"string"},"region":{"description":"Geographical region for proxy placement (defaults to US).","type":"string"}},"required":["handle"],"title":"TikTok Shop User Showcase input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"nextCursor":{"type":"string"},"products":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"currency":{"type":"string"},"imageUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"originalPrice":{"type":"string"},"price":{"type":"string"},"productId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"rating":{"type":"number"},"reviewCount":{"type":"integer"},"soldCount":{"type":"integer"},"title":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["productId","title","price","originalPrice","currency","rating","reviewCount","soldCount","imageUrl","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["nextCursor","products"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"TikTok Shop User Showcase output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"TikTok Shop User Showcase","tags":["tiktok-shop"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tripadvisor.reviews":{"post":{"description":"Fetch the latest reviews for any Tripadvisor hotel, restaurant, or attraction by its page URL: rating, text, date, and trip details as normalized JSON.\n\n**Price:** \\$3.25 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"tripadvisor_reviews","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"url":"https://www.tripadvisor.com/Hotel_Review-g60763-d93450-Reviews-The_Plaza-New_York_City_New_York.html"},"schema":{"additionalProperties":false,"example":{"limit":3,"url":"https://www.tripadvisor.com/Hotel_Review-g60763-d93450-Reviews-The_Plaza-New_York_City_New_York.html"},"properties":{"languages":{"description":"Only return reviews in these ISO 639-1 languages (e.g. [\"en\", \"es\"]); omit for all languages.","items":{"type":"string"},"type":"array"},"limit":{"description":"Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.","maximum":20,"minimum":1,"type":"integer"},"ratings":{"description":"Only return reviews whose bubble rating is in this set (e.g. [\"5\", \"4\"] for 4 and 5 star reviews); omit for all ratings.","items":{"enum":["1","2","3","4","5"],"type":"string"},"type":"array"},"since":{"description":"Only return reviews newer than this date, YYYY-MM-DD or a relative window like '3 months' (e.g. 2026-01-01).","type":"string"},"url":{"description":"Tripadvisor page URL of the hotel, restaurant, or attraction.","type":"string"}},"required":["url"],"title":"Tripadvisor reviews input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Result payload, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Review records for the place: rating, title, review text, publish date, trip type, and reviewer details. Populated whenever the provider has data for the entity.","items":{"properties":{"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"rating":{"description":"Star rating (typically 1-5).","type":"number"},"text":{"description":"Review body text. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Review title or headline. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Canonical review URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["rating","text"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"Whether any reviews were found for the place.","type":"boolean"}},"required":["found","data"],"title":"Tripadvisor reviews output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Tripadvisor Reviews","tags":["tripadvisor"],"x-payment-info":{"price":{"currency":"USD","max":"0.010000","min":"0.003250","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/tripadvisor.search":{"post":{"description":"Search Tripadvisor for hotels, restaurants, and attractions in any destination and get rich place records (ratings, review counts, contact details, pricing) as normalized JSON.\n\n**Price:** \\$3.25 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"tripadvisor_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"query":"Paris"},"schema":{"additionalProperties":false,"example":{"limit":3,"query":"Paris"},"properties":{"currency":{"default":"USD","description":"ISO currency code for prices (e.g. USD, EUR).","type":"string"},"includeAttractions":{"default":true,"description":"Include attractions and things to do in the results; set false to exclude them (e.g. false). Defaults to true.","type":"boolean"},"includeHotels":{"default":true,"description":"Include hotels in the results; set false to exclude them (e.g. false). Defaults to true.","type":"boolean"},"includeRestaurants":{"default":true,"description":"Include restaurants in the results; set false to exclude them (e.g. false). Defaults to true.","type":"boolean"},"limit":{"description":"Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.","maximum":20,"minimum":1,"type":"integer"},"query":{"description":"Destination or keyword to search for (e.g. Barcelona).","type":"string"}},"required":["query"],"title":"Tripadvisor search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The result wrapper, or null when nothing matched.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Matching Tripadvisor place records (hotels, restaurants, attractions). Populated whenever the provider has data for the entity.","items":{"properties":{"address":{"description":"Full formatted street address.","type":"string"},"category":{"description":"High-level category (e.g. hotel, restaurant, attraction).","type":"string"},"city":{"description":"City the place is in.","type":"string"},"country":{"description":"Country the place is in.","type":"string"},"email":{"description":"Business contact email, when listed.","type":"string"},"hotelClass":{"description":"Star rating / hotel class, when applicable.","type":"string"},"id":{"description":"Tripadvisor location id (stable identifier for the place).","type":"string"},"image":{"description":"Primary place photo URL.","type":"string"},"latitude":{"description":"Latitude of the place in decimal degrees.","type":"number"},"longitude":{"description":"Longitude of the place in decimal degrees.","type":"number"},"phone":{"description":"Business phone number, when listed.","type":"string"},"postalCode":{"description":"Postal code of the place.","type":"string"},"priceLevel":{"description":"Relative price level indicator (e.g. $$, $$$$).","type":"string"},"priceRange":{"description":"Nightly or per-visit price range in the requested currency.","type":"string"},"ranking":{"description":"Ranking string within its location (e.g. \"#2 of 1,885 hotels in Paris\").","type":"string"},"rating":{"description":"Average traveler rating out of 5. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"reviewCount":{"description":"Total number of traveler reviews.","type":"number"},"title":{"description":"Place name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"type":{"description":"Tripadvisor place type (e.g. HOTEL, RESTAURANT, ATTRACTION).","type":"string"},"url":{"description":"Canonical Tripadvisor listing page URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"website":{"description":"The place's own website URL, when listed.","type":"string"}},"required":["title","url","rating"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when the search returned at least one matching place.","type":"boolean"}},"required":["found","data"],"title":"Tripadvisor search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Tripadvisor Search","tags":["tripadvisor"],"x-payment-info":{"price":{"currency":"USD","max":"0.050050","min":"0.003250","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/trustpilot.reviews":{"post":{"description":"Pull Trustpilot reviews for any company by brand name: star ratings, review text, dates, and reviewer details as clean JSON.\n\n**Price:** \\$16.25 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"trustpilot_reviews","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"company":"stripe.com","limit":3},"schema":{"additionalProperties":false,"example":{"company":"stripe.com","limit":3},"properties":{"company":{"description":"Brand name or Trustpilot review-page URL to fetch reviews for (e.g. nike or https://www.trustpilot.com/review/nike.com).","type":"string"},"countries":{"description":"Only return reviews from reviewers in these ISO 3166-1 alpha-2 countries (e.g. [\"US\", \"GB\"]); omit for all countries.","items":{"type":"string"},"type":"array"},"languages":{"description":"Only return reviews in these ISO 639-1 languages (e.g. [\"en\", \"de\"]); omit for all languages.","items":{"type":"string"},"type":"array"},"limit":{"description":"Maximum number of results to return (1-50, default 50). You are billed per result returned, so a lower limit costs less.","maximum":50,"minimum":1,"type":"integer"},"sortBy":{"default":"auto","description":"Review ordering: auto, relevancy, or recent (e.g. recent).","type":"string"},"stars":{"description":"Limit reviews to a single star rating from 1 to 5 (e.g. 5); omit for all ratings.","type":"string"},"startDate":{"description":"Only return reviews on or after this date, inclusive, in YYYY-MM-DD format (e.g. 2026-01-01).","type":"string"},"verifiedOnly":{"default":false,"description":"Set true to return only verified reviews (e.g. true).","type":"boolean"}},"required":["company"],"title":"Trustpilot reviews input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Result payload, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Review records: star rating, review title and text, date, reviewer name and country, and company reply when present. Populated whenever the provider has data for the entity.","items":{"properties":{"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"rating":{"description":"Star rating (1-5).","type":"number"},"text":{"description":"Review body text. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Review title or headline. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Canonical review URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"verified":{"description":"Whether the reviewer is verified.","type":"boolean"}},"required":["rating","text"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"Whether any reviews were found for the company.","type":"boolean"}},"required":["found","data"],"title":"Trustpilot reviews output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Trustpilot Reviews","tags":["trustpilot"],"x-payment-info":{"price":{"currency":"USD","max":"0.060000","min":"0.016250","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/truthsocial.post":{"post":{"description":"Get a single Truth Social post by its URL - text, author, engagement (likes, comments, shares), and timestamp as clean JSON.\n\n**Price:** \\$3.25 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"truthsocial_post","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://truthsocial.com/@realDonaldTrump/posts/116824551176646175"},"schema":{"additionalProperties":false,"example":{"url":"https://truthsocial.com/@realDonaldTrump/posts/116824551176646175"},"properties":{"url":{"description":"Full Truth Social post URL, e.g. \"https://truthsocial.com/@realDonaldTrump/posts/116824551176646175\".","type":"string"}},"required":["url"],"title":"Truth Social post input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The post record, or null when nothing was found.","oneOf":[{"type":"null"},{"properties":{"comments":{"description":"Number of comments on the post.","type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"displayName":{"description":"Display name of the author. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Post identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"description":"Number of likes on the post.","type":"integer"},"shares":{"description":"Number of reblogs of the post.","type":"integer"},"text":{"description":"Post text content. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"username":{"description":"Username of the author. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","text","username","displayName","likes","comments","shares","createdUtc"],"type":"object"}]},"found":{"description":"True when the post was found; false when the lookup returned nothing.","type":"boolean"}},"required":["found","data"],"title":"Truth Social post output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Truth Social Post","tags":["truthsocial"],"x-payment-info":{"price":{"amount":"0.003250","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/truthsocial.profile":{"post":{"description":"Get a Truth Social account's public profile by handle - display name, bio, follower/following counts, and post count as clean JSON.\n\n**Price:** \\$3.25 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"truthsocial_profile","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"realDonaldTrump"},"schema":{"additionalProperties":false,"example":{"handle":"realDonaldTrump"},"properties":{"handle":{"description":"Truth Social handle without the @, e.g. \"realDonaldTrump\".","type":"string"}},"required":["handle"],"title":"Truth Social profile input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"avatarUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"bio":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"displayName":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"followers":{"type":"integer"},"following":{"type":"integer"},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"joinedAt":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"postsCount":{"type":"integer"},"private":{"type":"boolean"},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"username":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"verified":{"type":"boolean"}},"required":["id","username","displayName","bio","avatarUrl","url","verified","private","followers","following","postsCount","joinedAt"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Truth Social profile output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Truth Social Profile","tags":["truthsocial"],"x-payment-info":{"price":{"amount":"0.003250","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/truthsocial.user_posts":{"post":{"description":"List a Truth Social account's recent posts by handle - text, engagement (likes, comments, shares), and timestamps as clean JSON.\n\n**Price:** \\$3.25 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"truthsocial_user_posts","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"realDonaldTrump"},"schema":{"additionalProperties":false,"example":{"handle":"realDonaldTrump"},"properties":{"handle":{"description":"Truth Social handle without the @, e.g. \"realDonaldTrump\".","type":"string"}},"required":["handle"],"title":"Truth Social user posts input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Wrapper holding the posts array, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"posts":{"description":"The user's recent posts. Populated whenever the provider has data for the entity.","items":{"properties":{"comments":{"description":"Number of comments on the post.","type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"id":{"description":"Post identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"description":"Number of likes on the post.","type":"integer"},"shares":{"description":"Number of reblogs of the post.","type":"integer"},"text":{"description":"Post text content. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Canonical URL of the post. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","url","text","likes","comments","shares","createdUtc"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["posts"],"type":"object"}]},"found":{"description":"True when the user's posts were found; false when the lookup returned nothing.","type":"boolean"}},"required":["found","data"],"title":"Truth Social user posts output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Truth Social User Posts","tags":["truthsocial"],"x-payment-info":{"price":{"amount":"0.003250","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/twitter.article":{"post":{"description":"Get a public X long-form article from its wrapper post URL, including its author, engagement, cover image, and structured content blocks.\n\n**Price:** \\$0.75 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"twitter_article","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://x.com/Decentralisedco/status/1905545699552375179"},"schema":{"additionalProperties":false,"example":{"url":"https://x.com/Decentralisedco/status/1905545699552375179"},"properties":{"url":{"description":"Canonical x.com or twitter.com URL of the public wrapper post for an X Article.","pattern":"^https?://(?:(?:www|mobile)\\.)?(?:x\\.com|twitter\\.com)/(?:[A-Za-z0-9_]+|i/web)/status/[0-9]+/?(?:[?#].*)?$","type":"string"}},"required":["url"],"title":"X / Twitter Article input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Normalized public article, or null when the wrapper post is not an article.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"author":{"description":"Article author profile at retrieval time. Populated whenever the provider has data for the entity.","properties":{"avatarUrl":{"description":"Profile avatar image URL.","format":"uri","type":"string"},"bio":{"description":"Profile biography.","type":"string"},"blueVerified":{"description":"Whether the account has X blue verification.","type":"boolean"},"coverUrl":{"description":"Profile cover image URL when available.","format":"uri","type":"string"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"followers":{"description":"Follower count at retrieval time.","minimum":0,"type":"integer"},"following":{"description":"Following count at retrieval time.","minimum":0,"type":"integer"},"handle":{"description":"Current X handle without @. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Stable numeric X user ID. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"location":{"description":"Self-reported profile location.","type":"string"},"name":{"description":"Profile display name.","type":"string"},"url":{"description":"Canonical public X profile URL. Populated whenever the provider has data for the entity.","format":"uri","type":"string","x-anyapi-must-populate":true},"verified":{"description":"Whether the account has legacy verification.","type":"boolean"}},"required":["id","handle","url"],"type":"object","x-anyapi-must-populate":true},"contentBlocks":{"description":"Ordered, explicitly normalized article blocks. Unknown future block types remain representable through type and optional fields. Populated whenever the provider has data for the entity.","items":{"properties":{"entities":{"description":"Entity references within the block text.","items":{"properties":{"key":{"description":"Upstream entity table key.","minimum":0,"type":"integer"},"length":{"description":"Entity character length.","minimum":0,"type":"integer"},"offset":{"description":"Zero-based character offset.","minimum":0,"type":"integer"}},"required":["key","offset","length"],"type":"object"},"type":"array"},"height":{"description":"Image height in pixels when supplied.","minimum":0,"type":"integer"},"image":{"description":"Canonical image URL for an image block.","format":"uri","type":"string"},"inlineStyles":{"description":"Formatting ranges within the block text.","items":{"properties":{"length":{"description":"Formatted character length.","minimum":0,"type":"integer"},"offset":{"description":"Zero-based character offset.","minimum":0,"type":"integer"},"style":{"description":"Inline style name reported by X.","type":"string"}},"required":["style","offset","length"],"type":"object"},"type":"array"},"text":{"description":"Text content for a text-bearing block.","type":"string"},"type":{"description":"Block type reported by X, such as unstyled, header-two, image, divider, blockquote, or list item. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"width":{"description":"Image width in pixels when supplied.","minimum":0,"type":"integer"}},"required":["type"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"coverImage":{"description":"Canonical article cover image URL when available.","format":"uri","type":"string"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"id":{"description":"Stable X Article entity ID. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"description":"Wrapper post like count at retrieval time.","minimum":0,"type":"integer"},"previewText":{"description":"Preview text supplied by X.","type":"string"},"quotes":{"description":"Wrapper post quote count at retrieval time.","minimum":0,"type":"integer"},"replies":{"description":"Wrapper post reply count at retrieval time.","minimum":0,"type":"integer"},"title":{"description":"Article title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"views":{"description":"Wrapper post view count at retrieval time.","minimum":0,"type":"integer"}},"required":["id","title","createdUtc","author","contentBlocks"],"type":"object"}]},"found":{"description":"True when the wrapper post contains a public X Article.","type":"boolean"}},"required":["found","data"],"title":"X / Twitter Article output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"X / Twitter Article","tags":["twitter"],"x-payment-info":{"price":{"amount":"0.000750","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/twitter.community":{"post":{"description":"Fetch a Twitter/X community's public details (name, description, member count, join policy) by URL.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"twitter_community","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://x.com/i/communities/1926186499399139650"},"schema":{"additionalProperties":false,"example":{"url":"https://x.com/i/communities/1926186499399139650"},"properties":{"url":{"description":"Community URL (e.g. https://x.com/i/communities/1926186499399139650).","type":"string"}},"required":["url"],"title":"Twitter Community input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The community record, or null when nothing was found.","oneOf":[{"type":"null"},{"properties":{"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"creatorHandle":{"description":"Handle of the account that created the community. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"description":{"description":"Community description text. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Community identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"joinPolicy":{"description":"How members join, e.g. \"open\" or \"restricted\". Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"memberCount":{"description":"Number of members in the community.","type":"integer"},"name":{"description":"Community name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","name","description","memberCount","joinPolicy","createdUtc","creatorHandle"],"type":"object"}]},"found":{"description":"True when the community was found; false when the lookup returned nothing.","type":"boolean"}},"required":["found","data"],"title":"Twitter Community output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Twitter Community","tags":["twitter"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/twitter.community_tweets":{"post":{"description":"List recent tweets posted in a Twitter/X community by URL.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"twitter_community_tweets","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://x.com/i/communities/1926186499399139650"},"schema":{"additionalProperties":false,"example":{"url":"https://x.com/i/communities/1926186499399139650"},"properties":{"url":{"description":"Community URL (e.g. https://x.com/i/communities/1926186499399139650).","type":"string"}},"required":["url"],"title":"Twitter Community Tweets input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"tweets":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"authorHandle":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"favoriteCount":{"type":"integer"},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"quoteCount":{"type":"integer"},"replyCount":{"type":"integer"},"retweetCount":{"type":"integer"},"text":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","text","createdUtc","favoriteCount","replyCount","retweetCount","quoteCount","authorHandle"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["tweets"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Twitter Community Tweets output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Twitter Community Tweets","tags":["twitter"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/twitter.followers":{"post":{"description":"Fetch the follower list of any public X (Twitter) account by username with cursor pagination. Limit is a per-page maximum; native pages contain up to 200 accounts unless requireSinglePage selects a bulk lane.\n\n**Price:** \\$0.75 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"twitter_followers","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":200,"username":"nasa"},"schema":{"additionalProperties":false,"example":{"limit":200,"username":"nasa"},"properties":{"cursor":{"description":"Opaque pagination cursor from a previous response's nextCursor. Omit for the first page; pass it to fetch the next page of followers.","type":"string"},"limit":{"default":200,"description":"Per-page maximum number of followers to return (1-100000, default 200). A provider may return a smaller native page; follow nextCursor for more.","maximum":100000,"minimum":1,"type":"integer"},"requireSinglePage":{"description":"Set true to get up to limit followers in one response instead of provider-native pages, served by a bulk provider when needed.","type":"boolean"},"username":{"description":"The X (Twitter) username to fetch followers for, without the @ prefix (e.g. elonmusk).","type":"string"}},"required":["username"],"title":"X / Twitter followers input","type":"object","x-aliases":{"handle":"username"}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Follower records, normalized to a compact shape. Populated whenever the provider has data for the entity.","items":{"properties":{"avatarUrl":{"description":"URL of the account's profile image (may be empty). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"bio":{"description":"The account's profile bio/description.","type":"string"},"followers":{"description":"How many followers this account has.","type":"integer"},"following":{"description":"How many accounts this account follows.","type":"integer"},"location":{"description":"The account's self-reported location (may be empty).","type":"string"},"name":{"description":"The account's display name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"username":{"description":"The account's @ handle, without the @ prefix. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"verified":{"description":"Whether the account is verified.","type":"boolean"}},"required":["username","name","bio","followers","following","verified","location","avatarUrl"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"nextCursor":{"description":"Opaque cursor for the next page of followers, or null when there are no more. Pass it back as cursor to continue.","type":["string","null"]}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"X / Twitter followers output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"X / Twitter Followers","tags":["twitter"],"x-payment-info":{"price":{"currency":"USD","max":"15.000000","min":"0.000750","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/twitter.following":{"post":{"description":"List the accounts a public X (Twitter) account follows by username with cursor pagination. Limit is a per-page maximum; native pages contain up to 200 accounts unless requireSinglePage selects a bulk lane.\n\n**Price:** \\$0.75 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"twitter_following","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":200,"username":"nasa"},"schema":{"additionalProperties":false,"example":{"limit":200,"username":"nasa"},"properties":{"cursor":{"description":"Opaque pagination cursor from a previous response's nextCursor. Omit for the first page; pass it to fetch the next page of followed accounts.","type":"string"},"limit":{"default":200,"description":"Per-page maximum number of followed accounts to return (1-100000, default 200). A provider may return a smaller native page; follow nextCursor for more.","maximum":100000,"minimum":1,"type":"integer"},"requireSinglePage":{"description":"Set true to get up to limit accounts in one response instead of provider-native pages, served by a bulk provider when needed.","type":"boolean"},"username":{"description":"The X (Twitter) username to fetch the following list for, without the @ prefix (e.g. elonmusk).","type":"string"}},"required":["username"],"title":"X / Twitter following input","type":"object","x-aliases":{"handle":"username"}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Followed-account records, normalized to a compact shape. Populated whenever the provider has data for the entity.","items":{"properties":{"avatarUrl":{"description":"URL of the account's profile image (may be empty). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"bio":{"description":"The account's profile bio/description.","type":"string"},"followers":{"description":"How many followers this account has.","type":"integer"},"following":{"description":"How many accounts this account follows.","type":"integer"},"location":{"description":"The account's self-reported location (may be empty).","type":"string"},"name":{"description":"The account's display name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"username":{"description":"The account's @ handle, without the @ prefix. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"verified":{"description":"Whether the account is verified.","type":"boolean"}},"required":["username","name","bio","followers","following","verified","location","avatarUrl"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"nextCursor":{"description":"Opaque cursor for the next page of followed accounts, or null when there are no more. Pass it back as cursor to continue.","type":["string","null"]}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"X / Twitter following output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"X / Twitter Following","tags":["twitter"],"x-payment-info":{"price":{"currency":"USD","max":"15.000000","min":"0.000750","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/twitter.profile":{"post":{"description":"Fetch a Twitter/X account's public profile (followers, tweets, bio, verification) by handle.\n\n**Price:** \\$0.75 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 4 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"twitter_profile","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"nasa"},"schema":{"additionalProperties":false,"example":{"handle":"nasa"},"properties":{"handle":{"description":"Twitter/X handle without the leading @.","type":"string"}},"required":["handle"],"title":"Twitter profile input","type":"object","x-aliases":{"username":"handle"}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"avatarUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"bio":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"displayName":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"followers":{"type":"integer"},"following":{"type":"integer"},"handle":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"tweets":{"type":"integer"},"verified":{"type":"boolean"}},"required":["handle","displayName","followers","following","tweets","bio","verified","avatarUrl"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Twitter profile output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Twitter Profile","tags":["twitter"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.000750","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/twitter.replies":{"post":{"description":"Fetch the replies to any X (Twitter) post URL as structured records: author, text, and engagement.\n\n**Price:** billed per result - \\$2.50 per 1,000 requests base + \\$0.25 per 1,000 results, capped at \\$12.50 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"twitter_replies","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"url":"https://x.com/jack/status/20"},"schema":{"additionalProperties":false,"example":{"limit":3,"url":"https://x.com/jack/status/20"},"properties":{"limit":{"description":"Maximum number of results to return (1-40, default 40). You are billed per result returned, so a lower limit costs less.","maximum":40,"minimum":1,"type":"integer"},"url":{"description":"Full URL of the X (Twitter) post to fetch replies for (e.g. https://x.com/nasa/status/1846987139428634858).","type":"string"}},"required":["url"],"title":"X / Twitter post replies input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Reply records for the requested post. Populated whenever the provider has data for the entity.","items":{"properties":{"authorHandle":{"description":"Screen name / handle of the reply's author, without the @ prefix.","type":"string"},"authorName":{"description":"Display name of the reply's author. Empty when the upstream omits it.","type":"string"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"id":{"description":"The reply's numeric tweet ID, as a string. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likeCount":{"description":"Number of likes on this reply.","type":"integer"},"quoteCount":{"description":"Number of quote tweets of this reply.","type":"integer"},"replyCount":{"description":"Number of replies to this reply.","type":"integer"},"repostCount":{"description":"Number of reposts/retweets of this reply.","type":"integer"},"text":{"description":"The reply's text. Empty for media-only replies with no text.","type":"string"},"url":{"description":"Canonical x.com URL of the reply, with tracking query params stripped. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"viewCount":{"description":"Number of views of this reply.","type":"integer"}},"required":["id","url","text","createdUtc"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"Whether the post was found and returned reply records.","type":"boolean"}},"required":["found","data"],"title":"X / Twitter post replies output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"X / Twitter Post Replies","tags":["twitter"],"x-payment-info":{"price":{"currency":"USD","max":"0.012500","min":"0.002500","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/twitter.search":{"post":{"description":"Search X (Twitter) with full advanced-search syntax (operators like from:, since:, until:, min_faves: work inline in the query) and get structured tweets with text, author, engagement, and cursor pagination. Limit is a per-page maximum; native pages contain approximately 20 tweets unless requireSinglePage selects a bulk lane.\n\n**Price:** \\$0.75 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"twitter_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"query":"openai"},"schema":{"additionalProperties":false,"example":{"query":"openai"},"properties":{"cursor":{"description":"Opaque pagination cursor from a previous response's nextCursor. Omit for the first page; pass it to fetch the next page of search results.","type":"string"},"lang":{"description":"Optional ISO 639-1 language code to restrict tweets to (e.g. en).","type":"string"},"limit":{"default":20,"description":"Per-page maximum number of results to return (1-50, default 20). A provider may return a smaller native page; follow nextCursor for more.","maximum":50,"minimum":1,"type":"integer"},"query":{"description":"Search query using X (Twitter) advanced-search syntax. IMPORTANT: bare terms are ANDed - a tweet must contain EVERY word, so a list of loosely related keywords matches nothing; use one short phrase or OR between alternatives (e.g. 'anyapi OR getanyapi'). You can embed X advanced-search operators directly in the query to filter results: from:username and to:username (author or recipient), since:YYYY-MM-DD and until:YYYY-MM-DD (date range), min_faves:N, min_retweets:N, min_replies:N (engagement floors), \"exact phrase\", -term to exclude, filter:media and filter:links and -filter:replies (content filters), lang:en, near:city, and geocode:lat,long,radius. Examples: 'from:OpenAI', 'AI agents min_faves:500 -filter:replies', 'nvidia since:2026-01-01 until:2026-03-01'. A query with no matches returns an empty items array; prefer the fewest words that identify the topic.","type":"string"},"queryType":{"default":"Latest","description":"Result ranking: 'Latest', 'Top', 'Photos', or 'Videos' (e.g. Latest).","type":"string"},"requireSinglePage":{"description":"Set true to get up to limit results in one response instead of provider-native pages, served by a bulk provider when needed.","type":"boolean"}},"required":["query"],"title":"X / Twitter search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Tweet records: text, author profile, timestamp, and engagement metrics (likes, retweets, replies, views). Populated whenever the provider has data for the entity.","items":{"properties":{"authorName":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorUsername":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorVerified":{"type":"boolean"},"bookmarkCount":{"type":"integer"},"conversationId":{"type":"string"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"isReply":{"type":"boolean"},"lang":{"type":"string"},"likeCount":{"type":"integer"},"quoteCount":{"type":"integer"},"replyCount":{"type":"integer"},"retweetCount":{"type":"integer"},"text":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"viewCount":{"type":"integer"}},"required":["id","url","text"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"nextCursor":{"description":"Opaque cursor for the next page of search results, or null when there are no more. Pass it back as cursor to continue.","type":["string","null"]}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"X / Twitter search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"X / Twitter Search","tags":["twitter"],"x-payment-info":{"price":{"currency":"USD","max":"0.014000","min":"0.000750","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/twitter.trends":{"post":{"description":"Get current X (Twitter) trends for worldwide, a country, or a city in X ranking order, including the resolved location.\n\n**Price:** \\$0.75 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"twitter_trends","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":10,"location":"US"},"schema":{"additionalProperties":false,"example":{"limit":10,"location":"US"},"properties":{"limit":{"default":50,"description":"Maximum number of ranked trends to return (1-50, default 50).","maximum":50,"minimum":1,"type":"integer"},"location":{"description":"Country name, city name, or ISO country code. Omit for worldwide trends.","minLength":1,"type":"string"}},"title":"X / Twitter trends input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The resolved location and its current ranked trends, or null when unavailable.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"asOfUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"items":{"description":"Current trends in X's own ranking order. Distinct ranks may carry the same trend name. Populated whenever the provider has data for the entity.","items":{"properties":{"isHashtag":{"description":"Whether the trend text is a hashtag.","type":"boolean"},"name":{"description":"Trend text displayed by X. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"promoted":{"description":"Whether X marks the trend as promoted.","type":"boolean"},"query":{"description":"Search query corresponding to the trend. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"rank":{"description":"One-based position in X's trend ranking. Populated whenever the provider has data for the entity.","minimum":1,"type":"integer","x-anyapi-must-populate":true}},"required":["rank","name","query"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"location":{"description":"Resolved X trend-location name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"locationId":{"description":"Resolved Yahoo WOEID used by X, exposed as a stable location identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["location","locationId","asOfUtc","items"],"type":"object"}]},"found":{"description":"Whether X trends were resolved for the requested location.","type":"boolean"}},"required":["found","data"],"title":"X / Twitter trends output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"X / Twitter Trends","tags":["twitter"],"x-payment-info":{"price":{"amount":"0.000750","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/twitter.tweet":{"post":{"description":"Fetch a single Twitter/X tweet by URL with its full text and engagement counts (likes, retweets, replies, quotes, bookmarks, views).\n\n**Price:** \\$0.75 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 3 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"twitter_tweet","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://x.com/SpaceX/status/1732824684683784516"},"schema":{"additionalProperties":false,"example":{"url":"https://x.com/SpaceX/status/1732824684683784516"},"properties":{"url":{"description":"Canonical x.com or twitter.com status URL with a numeric tweet ID, including /i/web/status and media-share variants.","pattern":"^https?://(?:(?:www|mobile)\\.)?(?:x\\.com|twitter\\.com)/(?:[A-Za-z0-9_]+|i/web)/status/[0-9]+(?:/(?:photo|video)/[0-9]+)?/?(?:[?#].*)?$","type":"string"}},"required":["url"],"title":"Twitter tweet input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"authorId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"bookmarks":{"type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"type":"integer"},"quotes":{"type":"integer"},"replies":{"type":"integer"},"retweets":{"type":"integer"},"text":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"views":{"type":"integer"}},"required":["id","text","authorId","likes","retweets","replies","quotes","bookmarks","views","createdUtc"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Twitter tweet output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Twitter Tweet","tags":["twitter"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.000750","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/twitter.tweet_transcript":{"post":{"description":"Extract the spoken transcript from a Twitter/X video tweet by URL.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"twitter_tweet_transcript","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://x.com/TheoVon/status/1916982720317821050"},"schema":{"additionalProperties":false,"example":{"url":"https://x.com/TheoVon/status/1916982720317821050"},"properties":{"url":{"description":"Tweet URL of the video to transcribe (e.g. https://x.com/TheoVon/status/1916982720317821050).","type":"string"}},"required":["url"],"title":"Twitter Tweet Transcript input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"transcript":{"type":"string"}},"required":["transcript"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Twitter Tweet Transcript output","type":"object","x-anyapi-heavy":true},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Twitter Tweet Transcript","tags":["twitter"],"x-payment-info":{"price":{"currency":"USD","max":"0.032500","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/twitter.user_posts":{"post":{"description":"Get an X (Twitter) account's profile Posts-tab timeline by handle. Results follow profile order: a pinned post may appear first, followed by otherwise reverse-chronological authored posts, reposts, quotes, and self-thread continuations.\n\n**Price:** \\$0.75 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"twitter_user_posts","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"levelsio"},"schema":{"additionalProperties":false,"example":{"handle":"levelsio"},"properties":{"cursor":{"description":"Opaque pagination cursor from a previous response's nextCursor. Omit for the first page.","minLength":1,"type":"string"},"handle":{"description":"Twitter/X handle without the leading @.","minLength":1,"type":"string"}},"required":["handle"],"title":"X / Twitter user posts input","type":"object","x-aliases":{"username":"handle"}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The Posts-tab timeline page, or null when the account was not found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"nextCursor":{"description":"Opaque cursor for the next native Posts-tab page, or null when no more pages are available.","type":["string","null"]},"tweets":{"description":"Posts in profile order. A pinned post may appear before otherwise reverse-chronological results. Populated whenever the provider has data for the entity.","items":{"properties":{"bookmarks":{"description":"Number of bookmarks.","type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"id":{"description":"The post's numeric tweet ID, represented as a string. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"isPinned":{"description":"Whether X marks the post as pinned on the profile.","type":"boolean"},"isReply":{"description":"Whether X marks the record as a reply. Certified Posts-tab captures use this for self-thread continuations.","type":"boolean"},"lang":{"description":"Language code reported for the post, when available.","type":"string"},"likes":{"description":"Number of likes.","type":"integer"},"quotes":{"description":"Number of quote posts.","type":"integer"},"replies":{"description":"Number of replies.","type":"integer"},"retweets":{"description":"Number of reposts or retweets.","type":"integer"},"text":{"description":"The post text. Empty for media-only posts. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Canonical x.com URL of the post. Populated whenever the provider has data for the entity.","format":"uri","type":"string","x-anyapi-must-populate":true},"views":{"description":"Number of views.","type":"integer"}},"required":["id","url","text","createdUtc","likes","retweets","replies","views","bookmarks","isPinned"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["tweets","nextCursor"],"type":"object"}]},"found":{"description":"Whether the account's Posts-tab timeline was returned.","type":"boolean"}},"required":["found","data"],"title":"X / Twitter user posts output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"X / Twitter User Posts","tags":["twitter"],"x-payment-info":{"price":{"amount":"0.000750","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/twitter.user_tweets":{"post":{"description":"Get up to the requested limit of tweets and replies authored by an X (Twitter) account in one bulk call, with engagement, views, and language. The current lane returns nextCursor as null; cursor is reserved for future cursor-capable lanes.\n\n**Price:** billed per result - \\$0.20 per 1,000 results, capped at \\$200.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"twitter_user_tweets","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"levelsio","limit":20},"schema":{"additionalProperties":false,"example":{"handle":"levelsio","limit":20},"properties":{"cursor":{"description":"Reserved for cursor-capable lanes. The current bulk lane returns nextCursor as null, so omit this field.","type":"string"},"handle":{"description":"Twitter/X handle without the leading @.","type":"string"},"limit":{"default":20,"description":"Maximum number of authored tweets and replies to return in the current bulk call (1-1000). The provider may return fewer results.","maximum":1000,"minimum":1,"type":"integer"},"requireSinglePage":{"description":"Compatibility flag for requiring one response. The current lane already returns up to limit results in one bulk call, whether this is omitted or true.","type":"boolean"}},"required":["handle"],"title":"Twitter user tweets input","type":"object","x-aliases":{"username":"handle"}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"nextCursor":{"description":"Reserved pagination cursor. The current bulk lane returns null; cursor-capable lanes may return an opaque continuation value in the future.","type":["string","null"]},"tweets":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"bookmarks":{"type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"isPinned":{"type":"boolean"},"isReply":{"type":"boolean"},"lang":{"type":"string"},"likes":{"type":"integer"},"quotes":{"type":"integer"},"replies":{"type":"integer"},"retweets":{"type":"integer"},"text":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"views":{"type":"integer"}},"required":["id","url","text","createdUtc","likes","retweets","replies","views","bookmarks","isPinned"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["tweets"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Twitter user tweets output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"X / Twitter User Tweets and Replies","tags":["twitter"],"x-payment-info":{"price":{"currency":"USD","max":"0.200000","min":"0.000000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/upwork.jobs":{"post":{"description":"Search Upwork job postings by keyword, with up to 25 fresh listings per request.\n\n**Price:** billed per result - \\$3.30 per 1,000 results, capped at \\$82.50 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"upwork_jobs","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"jobType":"fixed","limit":10,"query":"web developer"},"schema":{"additionalProperties":false,"example":{"jobType":"fixed","limit":10,"query":"web developer"},"properties":{"experienceLevel":{"description":"Filter by required experience level.","enum":["entry","intermediate","expert"],"type":"string"},"fixedPriceRange":{"description":"Budget range [min, max] in USD for fixed-price jobs (e.g. [500, 5000]).","items":{"type":"number"},"maxItems":2,"minItems":2,"type":"array"},"hourlyRateRange":{"description":"Hourly rate range [min, max] in USD/hour for hourly jobs (e.g. [20, 50]).","items":{"type":"number"},"maxItems":2,"minItems":2,"type":"array"},"jobType":{"description":"Filter by payment type: fixed-price or hourly jobs.","enum":["fixed","hourly"],"type":"string"},"limit":{"description":"Maximum number of results to return (10-25, default 25). You are billed per result returned, so a lower limit costs less. This search has a floor of 10 results per page.","maximum":25,"minimum":10,"type":"integer"},"location":{"description":"Filter by client location - a region, subregion, or country (e.g. United States, Europe).","type":"string"},"paymentVerified":{"description":"When true, only return jobs from clients with a verified payment method.","type":"boolean"},"query":{"description":"Keywords to search Upwork jobs for (e.g. react developer).","type":"string"},"sort":{"default":"newest","description":"Sort order for listings: newest or relevance (e.g. newest).","enum":["newest","relevance"],"type":"string"}},"required":["query"],"title":"Upwork Jobs input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Result payload, or null when nothing was found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Job records: title, description, budget or hourly rate, required skills, posted date, and client details. Populated whenever the provider has data for the entity.","items":{"properties":{"budget":{"description":"Fixed budget or hourly range.","type":"string"},"clientLocation":{"description":"Client country or location.","type":"string"},"clientRating":{"description":"Client average rating.","type":"number"},"clientTotalSpent":{"description":"Client lifetime spend (USD).","type":"number"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"description":{"description":"Full job posting description text. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"experienceLevel":{"description":"Required experience level (e.g. Entry, Intermediate, Expert).","type":"string"},"jobId":{"description":"Upwork job identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"jobType":{"description":"Fixed or Hourly.","type":"string"},"paymentVerified":{"description":"Whether the client's payment method is verified; null when Upwork reports it as unknown.","type":["boolean","null"]},"proposals":{"description":"Number of proposals submitted.","type":"integer"},"tags":{"description":"Skill tags.","items":{"type":"string"},"type":["array","null"]},"title":{"description":"Job posting title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Upwork job posting URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["jobId","title","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"Whether any jobs were found for the search.","type":"boolean"}},"required":["found","data"],"title":"Upwork Jobs output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Upwork Jobs","tags":["upwork"],"x-payment-info":{"price":{"currency":"USD","max":"0.082500","min":"0.000000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/walmart.product":{"post":{"description":"Fetch a Walmart product page by URL and get full product details (title, price, availability, ratings, images, and specs) in one normalized response.\n\n**Price:** billed per result - \\$3.68 per 1,000 results, capped at \\$3.68 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"walmart_product","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.walmart.com/ip/Apple-AirPods-Pro-2/5689919121"},"schema":{"additionalProperties":false,"example":{"url":"https://www.walmart.com/ip/Apple-AirPods-Pro-2/5689919121"},"properties":{"url":{"description":"Walmart product page URL.","type":"string"}},"required":["url"],"title":"Walmart product input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Product wrapper, or null when the URL resolved to no product.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Product detail records (one per requested product URL). Populated whenever the provider has data for the entity.","items":{"properties":{"availability":{"description":"Stock status, e.g. \"IN_STOCK\".","type":"string"},"brand":{"description":"Brand name; empty when not reported.","type":"string"},"description":{"description":"Short product description; empty when the listing has none.","type":"string"},"image":{"description":"Primary product image URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"images":{"description":"All product image URLs.","items":{"type":"string"},"type":"array"},"itemId":{"description":"Walmart US item id (usItemId). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"model":{"description":"Manufacturer model number; empty when not reported.","type":"string"},"priceText":{"description":"Current price as displayed, e.g. \"$125.00\"; empty when unavailable (Walmart returns a formatted string, not a numeric value).","type":"string"},"productId":{"description":"Walmart internal product id.","type":"string"},"rating":{"description":"Average customer rating, 0-5; 0 when unrated.","type":"number"},"reviewsCount":{"description":"Number of customer reviews; 0 when none.","type":"integer"},"sellerName":{"description":"Name of the seller fulfilling the offer.","type":"string"},"title":{"description":"Product title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"upc":{"description":"Universal Product Code; empty when not reported.","type":"string"},"url":{"description":"Canonical Walmart product page URL (condition query param retained, as it selects the offer). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["title","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when the product was found.","type":"boolean"}},"required":["found","data"],"title":"Walmart product output","type":"object","x-anyapi-heavy":true},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Walmart Product","tags":["walmart"],"x-payment-info":{"price":{"currency":"USD","max":"0.003680","min":"0.000000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/web.crawl":{"post":{"description":"Crawl a website and get clean text content from up to 10 pages in one normalized response, ideal for feeding sites into LLMs and search indexes.\n\n**Price:** billed per result - \\$1.50 per 1,000 requests base + \\$3.00 per 1,000 results, capped at \\$31.50 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"web_crawl","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"url":"https://example.com"},"schema":{"additionalProperties":false,"example":{"limit":3,"url":"https://example.com"},"properties":{"limit":{"description":"Maximum number of results to return (1-10, default 10). You are billed per result returned, so a lower limit costs less.","maximum":10,"minimum":1,"type":"integer"},"url":{"description":"The website URL or domain to crawl.","type":"string"}},"required":["url"],"title":"Website crawl input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Crawled page records: URL, page title, and extracted text content for each page. Populated whenever the provider has data for the entity.","items":{"properties":{"domain":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"text":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["domain","text"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Website crawl output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Website Crawl","tags":["web"],"x-payment-info":{"price":{"currency":"USD","max":"0.031500","min":"0.001500","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/web.map":{"post":{"description":"Map an entire website into a clean list of its URLs (with titles and descriptions) in a single call.\n\n**Price:** \\$0.90 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"web_map","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"search":"domain","url":"https://www.iana.org"},"schema":{"additionalProperties":false,"example":{"search":"domain","url":"https://www.iana.org"},"properties":{"includeSubdomains":{"description":"When true (upstream default), include URLs on subdomains of the target (for example docs.example.com when mapping example.com). Set false to return only URLs on the exact host.","type":"boolean"},"limit":{"default":100,"description":"Maximum number of links to return.","type":"integer"},"search":{"description":"Optional term that orders the returned links by relevance.","type":"string"},"sitemap":{"description":"How to use the site's sitemap.xml when discovering URLs. 'include' (upstream default) merges sitemap URLs with links found by crawling; 'only' returns just the URLs listed in the sitemap (fastest and most authoritative); 'skip' ignores the sitemap and discovers URLs by crawling links. Omit to use 'include'.","enum":["include","skip","only"],"type":"string"},"url":{"description":"The base URL of the site to map into a list of links.","format":"uri","type":"string"}},"required":["url"],"title":"Web map input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"results":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"description":{"type":"string"},"title":{"type":"string"},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["url","title","description"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["results"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Web map output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Web Map","tags":["web"],"x-payment-info":{"price":{"amount":"0.000900","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/web.scrape":{"post":{"description":"Scrape any web page and get its content back as clean Markdown (or HTML, or raw HTML) plus title and metadata.\n\n**Price:** \\$0.50 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 3 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"web_scrape","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"formats":["markdown","rawHtml"],"onlyMainContent":false,"url":"https://example.com"},"schema":{"additionalProperties":false,"example":{"formats":["markdown","rawHtml"],"onlyMainContent":false,"url":"https://example.com"},"properties":{"blockAds":{"description":"When true (upstream default), strip ad and cookie-consent elements before capture. Set false to keep them.","type":"boolean"},"excludeTags":{"description":"CSS selectors to drop before capture (for example [\"nav\", \"footer\", \".ads\"]). Applied after includeTags.","items":{"type":"string"},"type":"array"},"formats":{"default":["markdown","rawHtml"],"description":"Which representations of the page to return. Any combination of: markdown (page content as Markdown), html (cleaned HTML), rawHtml (verbatim page HTML). Each requested format is returned under the matching output field. Defaults to Markdown and raw HTML.","items":{"enum":["markdown","html","rawHtml"],"type":"string"},"type":"array"},"includeTags":{"description":"CSS selectors to keep. When set, only content matching these selectors is captured (for example [\"article\", \"main\"] or [\"#content\"]).","items":{"type":"string"},"type":"array"},"mobile":{"description":"When true, render the page with a mobile viewport and user agent instead of desktop. Some sites serve materially different content to mobile.","type":"boolean"},"onlyMainContent":{"default":false,"description":"When true, return only the main article content, stripping navigation, headers, footers, and other boilerplate. Defaults to false to capture the full page.","type":"boolean"},"stealth":{"default":false,"description":"When true, fetch through a stealth proxy that gets past bot protection which refuses an ordinary request. This costs materially more per request (see the pricing ceiling), so leave it off unless a normal scrape of the site comes back blocked or empty.","type":"boolean"},"url":{"description":"The URL of the page to scrape.","format":"uri","minLength":1,"type":"string"},"waitFor":{"description":"Milliseconds to wait for the page to finish rendering before capture. Use this for JavaScript-heavy pages or single-page apps whose content loads after the initial paint. Capped at 15000 to stay within the request timeout. This wait is time you asked us to spend, so your response takes this much longer, and it is excluded from the latency published for this endpoint.","maximum":15000,"minimum":0,"type":"integer","x-anyapi-caller-delay":{"unit":"ms"}}},"required":["url"],"title":"Web scrape input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"description":{"description":"The page meta description.","type":"string"},"html":{"description":"The cleaned page HTML. Present only when 'html' is among the requested formats.","type":"string"},"markdown":{"description":"The page content as clean Markdown. Present when 'markdown' is among the requested formats (the default). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"rawHtml":{"description":"The verbatim page HTML before cleaning. Present only when 'rawHtml' is among the requested formats.","type":"string"},"title":{"description":"The page title from its metadata.","type":"string"},"url":{"description":"The canonical source URL of the scraped page. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["url","title","description","markdown"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Web scrape output","type":"object","x-anyapi-heavy":true},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Web Scrape","tags":["web"],"x-payment-info":{"price":{"currency":"USD","max":"0.004500","min":"0.000500","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/web.screenshot":{"post":{"description":"Capture a real-browser screenshot of any web page URL.\n\n**Price:** billed per result - \\$1.58 per 1,000 results, capped at \\$1.58 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"web_screenshot","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://example.com"},"schema":{"additionalProperties":false,"example":{"url":"https://example.com"},"properties":{"url":{"description":"The full URL of the page to capture.","type":"string"},"viewportWidth":{"default":1280,"description":"Browser viewport width in pixels (e.g. 1280).","type":"integer"}},"required":["url"],"title":"Website screenshot input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The result wrapper, or null when nothing was captured.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Screenshot records: the requested page URL and a link to the captured image. Populated whenever the provider has data for the entity.","items":{"properties":{"image":{"description":"Link to the captured screenshot image. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"The final page URL that was captured. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when a screenshot was captured.","type":"boolean"}},"required":["found","data"],"title":"Website screenshot output","type":"object","x-anyapi-heavy":true},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Website Screenshot","tags":["web"],"x-payment-info":{"price":{"currency":"USD","max":"0.001580","min":"0.000000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/weibo.hot_search":{"post":{"description":"Get the complete current Weibo hot-search ranking with labels and heat values.\n\n**Price:** \\$1.50 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"weibo_hot_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{},"schema":{"additionalProperties":false,"example":{},"properties":{},"title":"Weibo hot search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Current hot-search ranking, or null when unavailable.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"topics":{"description":"Ranked hot-search topics. Populated whenever the provider has data for the entity.","items":{"properties":{"heat":{"description":"Topic popularity value.","type":"string"},"keyword":{"description":"Hot-search keyword. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"pinned":{"description":"Whether the topic is pinned.","type":"boolean"},"rank":{"description":"Ranking position; zero may indicate pinned content. Populated whenever the provider has data for the entity.","type":"integer","x-anyapi-must-populate":true},"tag":{"description":"Hot-search label.","type":"string"}},"required":["rank","keyword"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"total":{"description":"Total topics.","type":"integer"}},"required":["topics","total"],"type":"object"}]},"found":{"description":"True when hot-search topics were found.","type":"boolean"}},"required":["found","data"],"title":"Weibo hot search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Weibo Hot Search","tags":["weibo"],"x-payment-info":{"price":{"amount":"0.001500","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/weibo.post":{"post":{"description":"Fetch a public Weibo post by ID with normalized author and engagement data.\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"weibo_post","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"includeLongText":"true","postId":"5092682368025584"},"schema":{"additionalProperties":false,"example":{"includeLongText":"true","postId":"5092682368025584"},"properties":{"includeLongText":{"default":"true","description":"Whether to include the full text of long posts.","type":"string"},"postId":{"description":"Weibo post identifier.","type":"string"}},"required":["postId"],"title":"Weibo post input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Normalized post, or null when not found.","oneOf":[{"type":"null"},{"properties":{"authorImage":{"description":"Author avatar URL.","format":"uri","type":"string"},"authorName":{"description":"Author display name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorUserId":{"description":"Author user identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorVerified":{"description":"Whether the author is verified.","type":"boolean"},"comments":{"description":"Comment count.","type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"id":{"description":"Post identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"imageCount":{"description":"Attached image count.","type":"integer"},"likes":{"description":"Like count.","type":"integer"},"region":{"description":"Region label reported by Weibo.","type":"string"},"reposts":{"description":"Repost count.","type":"integer"},"shortId":{"description":"Short Weibo post identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"text":{"description":"Plain post text. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id"],"type":"object"}]},"found":{"description":"True when the post was found.","type":"boolean"}},"required":["found","data"],"title":"Weibo post output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Weibo Post","tags":["weibo"],"x-payment-info":{"price":{"amount":"0.001000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/weibo.post_comments":{"post":{"description":"List first-level comments on a public Weibo post with pagination.\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"weibo_post_comments","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":10,"postId":"5283919831764022"},"schema":{"additionalProperties":false,"example":{"limit":10,"postId":"5283919831764022"},"properties":{"cursor":{"description":"Pagination cursor returned as nextCursor.","type":"string"},"limit":{"default":10,"description":"Requested comment count.","type":"integer"},"postId":{"description":"Weibo post identifier.","type":"string"}},"required":["postId"],"title":"Weibo post comments input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Comments and pagination, or null when none were found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"comments":{"description":"Normalized first-level comments. Populated whenever the provider has data for the entity.","items":{"properties":{"authorImage":{"description":"Comment author avatar URL.","format":"uri","type":"string"},"authorName":{"description":"Comment author display name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorUserId":{"description":"Comment author user identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorVerified":{"description":"Whether the comment author is verified.","type":"boolean"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"id":{"description":"Comment identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"description":"Like count.","type":"integer"},"text":{"description":"Plain comment text. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"nextCursor":{"description":"Cursor for the next page; empty when unavailable.","type":"string"},"total":{"description":"Total comments reported by Weibo.","type":"integer"}},"required":["comments","nextCursor","total"],"type":"object"}]},"found":{"description":"True when comments were found.","type":"boolean"}},"required":["found","data"],"title":"Weibo post comments output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Weibo Post Comments","tags":["weibo"],"x-payment-info":{"price":{"amount":"0.001000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/weibo.profile":{"post":{"description":"Fetch a public Weibo profile by user ID with normalized audience and account data.\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"weibo_profile","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"userId":"1722594714"},"schema":{"additionalProperties":false,"example":{"userId":"1722594714"},"properties":{"userId":{"description":"Weibo user identifier.","type":"string"}},"required":["userId"],"title":"Weibo profile input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Normalized profile, or null when not found.","oneOf":[{"type":"null"},{"properties":{"bio":{"description":"Profile biography.","type":"string"},"customName":{"description":"Custom Weibo username when configured.","type":"string"},"externalUrl":{"description":"External profile URL.","format":"uri","type":"string"},"followers":{"description":"Follower count.","type":"integer"},"following":{"description":"Following count.","type":"integer"},"gender":{"description":"Gender code reported by Weibo.","type":"string"},"image":{"description":"Profile image URL. Populated whenever the provider has data for the entity.","format":"uri","type":"string","x-anyapi-must-populate":true},"location":{"description":"Profile location.","type":"string"},"name":{"description":"Display name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"posts":{"description":"Published post count.","type":"integer"},"userId":{"description":"User identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"verified":{"description":"Whether the account is verified.","type":"boolean"},"verifiedReason":{"description":"Verification reason.","type":"string"}},"required":["userId"],"type":"object"}]},"found":{"description":"True when the profile was found.","type":"boolean"}},"required":["found","data"],"title":"Weibo profile output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Weibo Profile","tags":["weibo"],"x-payment-info":{"price":{"amount":"0.001000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/weibo.search":{"post":{"description":"Search public Weibo posts with optional result, media, and time filters.\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"weibo_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"includeType":"pic","page":1,"query":"python","searchType":"hot"},"schema":{"additionalProperties":false,"example":{"includeType":"pic","page":1,"query":"python","searchType":"hot"},"properties":{"includeType":{"description":"Media filter, such as all, pic, video, music, or link.","type":"string"},"page":{"default":1,"description":"Page number starting at 1.","type":"integer"},"query":{"description":"Search keyword.","type":"string"},"searchType":{"description":"Search type, such as all, hot, original, verified, media, or viewpoint.","type":"string"},"timeScope":{"description":"Custom time range in the API's custom:start:end format.","type":"string"}},"required":["query"],"title":"Weibo advanced search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Search results and metadata, or null when none were found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"hasMore":{"description":"Whether another result page is available.","type":"boolean"},"posts":{"description":"Normalized Weibo search results. Populated whenever the provider has data for the entity.","items":{"properties":{"authorImage":{"description":"Author avatar URL.","format":"uri","type":"string"},"authorName":{"description":"Author display name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"comments":{"description":"Comment count.","type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"hasImage":{"description":"Whether the result contains an image.","type":"boolean"},"hasVideo":{"description":"Whether the result contains a video.","type":"boolean"},"id":{"description":"Post identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"description":"Like count.","type":"integer"},"reposts":{"description":"Repost count.","type":"integer"},"text":{"description":"Post text. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"type":{"description":"Post type.","type":"string"},"url":{"description":"Canonical post URL. Populated whenever the provider has data for the entity.","format":"uri","type":"string","x-anyapi-must-populate":true}},"required":["id"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"resultCount":{"description":"Result count reported for this page.","type":"integer"}},"required":["posts","hasMore","resultCount"],"type":"object"}]},"found":{"description":"True when search results were found.","type":"boolean"}},"required":["found","data"],"title":"Weibo advanced search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Weibo Advanced Search","tags":["weibo"],"x-payment-info":{"price":{"amount":"0.001000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/weibo.user_posts":{"post":{"description":"List public posts from a Weibo user with normalized author and engagement data.\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"weibo_user_posts","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"feature":3,"page":1,"userId":"7277477906"},"schema":{"additionalProperties":false,"example":{"feature":3,"page":1,"userId":"7277477906"},"properties":{"cursor":{"description":"Pagination identifier returned as nextCursor.","type":"string"},"feature":{"default":0,"description":"Response detail feature: 0 basic, 1 extended, 2 image-oriented, or 3 video-oriented.","type":"integer"},"page":{"default":1,"description":"Page number starting at 1.","type":"integer"},"userId":{"description":"Weibo user identifier.","type":"string"}},"required":["userId"],"title":"Weibo user posts input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Posts and pagination, or null when none were found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"nextCursor":{"description":"Cursor for the next page; empty when unavailable.","type":"string"},"posts":{"description":"Normalized Weibo posts. Populated whenever the provider has data for the entity.","items":{"properties":{"authorImage":{"description":"Author avatar URL.","format":"uri","type":"string"},"authorName":{"description":"Author display name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorUserId":{"description":"Author user identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorVerified":{"description":"Whether the author is verified.","type":"boolean"},"comments":{"description":"Comment count.","type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"id":{"description":"Post identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"Post preview image URL.","format":"uri","type":"string"},"likes":{"description":"Like count.","type":"integer"},"reposts":{"description":"Repost count.","type":"integer"},"shortId":{"description":"Short Weibo post identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"text":{"description":"Plain post text. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["posts","nextCursor"],"type":"object"}]},"found":{"description":"True when posts were found.","type":"boolean"}},"required":["found","data"],"title":"Weibo user posts output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Weibo User Posts","tags":["weibo"],"x-payment-info":{"price":{"amount":"0.001000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/yahoo_finance.quote":{"post":{"description":"Look up a stock or ETF by ticker symbol and get its Yahoo Finance quote (price, market cap, volume, and key stats) as normalized JSON.\n\n**Price:** billed per result - \\$0.05 per 1,000 requests base + \\$0.90 per 1,000 results, capped at \\$0.95 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"yahoo_finance_quote","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"ticker":"AAPL"},"schema":{"additionalProperties":false,"example":{"ticker":"AAPL"},"properties":{"ticker":{"description":"The ticker symbol to look up.","type":"string"}},"required":["ticker"],"title":"Yahoo Finance quote input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Quote records for the ticker: current price, day range, volume, and market cap. Populated whenever the provider has data for the entity.","items":{"properties":{"change":{"description":"Absolute price change from the previous close.","type":"number"},"changePercent":{"description":"Percent price change from the previous close (e.g. 3.14 means +3.14%).","type":"number"},"dayHigh":{"description":"Highest trade price during the current session.","type":"number"},"dayLow":{"description":"Lowest trade price during the current session.","type":"number"},"marketCap":{"description":"Total market capitalization in the security's native currency.","type":"integer"},"name":{"description":"The security's display name, e.g. \"Apple Inc.\". Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"previousClose":{"description":"The previous session's closing price.","type":"number"},"price":{"description":"The latest trade price in the security's native currency. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"symbol":{"description":"The resolved ticker symbol for the quote, e.g. \"AAPL\". Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"volume":{"description":"Number of shares traded during the current session.","type":"integer"}},"required":["price"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Yahoo Finance quote output","type":"object","x-anyapi-heavy":true},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Yahoo Finance Quote","tags":["yahoo-finance"],"x-payment-info":{"price":{"currency":"USD","max":"0.000950","min":"0.000050","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/yelp.search":{"post":{"description":"Search Yelp for businesses by keyword and location: up to 20 listings with ratings, categories, and core business info per request.\n\n**Price:** billed per result - \\$40.00 per 1,000 requests base + \\$0.75 per 1,000 results, capped at \\$55.00 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"yelp_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":5,"location":"Chicago, IL","query":"pizza"},"schema":{"additionalProperties":false,"example":{"limit":5,"location":"Chicago, IL","query":"pizza"},"properties":{"limit":{"description":"Maximum number of results to return (1 to 20, default 20).","maximum":20,"minimum":1,"type":"integer"},"location":{"description":"City and state defining the search area (e.g. San Francisco, CA).","type":"string"},"query":{"description":"Search term or category to look for (e.g. sushi).","type":"string"}},"required":["query","location"],"title":"Yelp search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Business listing records: name, categories, rating, review count, address, and core business info. Populated whenever the provider has data for the entity.","items":{"additionalProperties":true,"properties":{"address1":{"description":"Primary street address line.","type":["string","null"]},"address2":{"description":"Secondary address line.","type":["string","null"]},"address3":{"description":"Tertiary address line.","type":["string","null"]},"alias":{"description":"URL slug for the business. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"avg_rating":{"description":"Rounded average star rating.","type":["number","null"]},"categories":{"description":"Business category tags.","items":{"additionalProperties":true,"type":"object"},"type":["array","null"]},"city":{"description":"City name.","type":["string","null"]},"country":{"description":"ISO country code.","type":["string","null"]},"dialable_phone":{"description":"Dialable phone number.","type":["string","null"]},"id":{"description":"Stable Yelp business identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"is_closed":{"description":"Whether the business is permanently closed.","type":["boolean","null"]},"latitude":{"description":"Latitude of the business.","type":["number","null"]},"localized_phone":{"description":"Formatted local phone number.","type":["string","null"]},"localized_price":{"description":"Localized price tier (e.g. $$).","type":["string","null"]},"longitude":{"description":"Longitude of the business.","type":["number","null"]},"name":{"description":"Business display name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"neighborhoods":{"description":"Neighborhood labels for the location.","items":{"type":"string"},"type":["array","null"]},"phone":{"description":"Raw phone number.","type":["string","null"]},"photo_count":{"description":"Total photo count.","type":["integer","null"]},"photo_url":{"description":"Primary photo URL. Populated whenever the provider has data for the entity.","type":["string","null"],"x-anyapi-must-populate":true},"price":{"description":"Numeric price tier.","type":["integer","null"]},"review_count":{"description":"Number of reviews.","type":["integer","null"]},"state":{"description":"State or region code.","type":["string","null"]},"unrounded_avg_rating":{"description":"Unrounded average star rating.","type":["number","null"]},"zip":{"description":"Postal code.","type":["string","null"]}},"required":["id","name","alias"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Yelp search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Yelp Search","tags":["yelp"],"x-payment-info":{"price":{"currency":"USD","max":"0.055000","min":"0.040000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/youtube.channel":{"post":{"description":"Fetch a YouTube channel's stats (subscribers, video count, total views, description) by handle or channel ID.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"youtube_channel","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"@mkbhd"},"schema":{"additionalProperties":false,"anyOf":[{"required":["handle"]},{"required":["channelId"]}],"example":{"handle":"@mkbhd"},"properties":{"channelId":{"description":"YouTube channel ID (UC...).","type":"string"},"handle":{"description":"YouTube channel handle.","type":"string"}},"title":"YouTube channel input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"avatarUrl":{"type":"string"},"channelId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"description":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"subscribers":{"type":"integer"},"title":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"videos":{"type":"integer"},"views":{"type":"integer"}},"required":["channelId","title","subscribers","videos","views","description","avatarUrl"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"YouTube channel output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"YouTube Channel","tags":["youtube"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/youtube.channel_community_posts":{"post":{"description":"List a YouTube channel's community posts by handle or channel ID with cursor pagination (text, likes, image, publish time).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"youtube_channel_community_posts","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"@MrBeast"},"schema":{"additionalProperties":false,"anyOf":[{"required":["handle"]},{"required":["channelId"]}],"example":{"handle":"@MrBeast"},"properties":{"channelId":{"description":"YouTube channel ID.","type":"string"},"cursor":{"description":"Continuation token from a previous response for pagination.","type":"string"},"handle":{"description":"YouTube channel handle.","type":"string"}},"title":"YouTube Channel Community Posts input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"nextCursor":{"type":"string"},"posts":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"content":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"type":"string"},"likeCount":{"type":"integer"},"publishedTime":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","url","content","image","likeCount","publishedTime"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["posts","nextCursor"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"YouTube Channel Community Posts output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"YouTube Channel Community Posts","tags":["youtube"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/youtube.channel_lives":{"post":{"description":"List a YouTube channel's live and past-live streams by handle or channel ID with cursor pagination (title, views, length, publish time).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"youtube_channel_lives","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"@IShowSpeed"},"schema":{"additionalProperties":false,"anyOf":[{"required":["handle"]},{"required":["channelId"]}],"example":{"handle":"@IShowSpeed"},"properties":{"channelId":{"description":"YouTube channel ID.","type":"string"},"cursor":{"description":"Continuation token from a previous response for pagination.","type":"string"},"handle":{"description":"YouTube channel handle.","type":"string"}},"title":"YouTube Channel Live Streams input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"lives":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"lengthText":{"type":"string"},"publishedTime":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"views":{"type":"integer"}},"required":["id","url","title","views","lengthText","publishedTime"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"nextCursor":{"type":"string"}},"required":["lives","nextCursor"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"YouTube Channel Live Streams output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"YouTube Channel Live Streams","tags":["youtube"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/youtube.channel_playlists":{"post":{"description":"List a YouTube channel's playlists by handle or channel ID with cursor pagination (title, video count, thumbnail).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"youtube_channel_playlists","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"@veritasium"},"schema":{"additionalProperties":false,"anyOf":[{"required":["handle"]},{"required":["channelId"]}],"example":{"handle":"@veritasium"},"properties":{"channelId":{"description":"YouTube channel ID.","type":"string"},"cursor":{"description":"Continuation token from a previous response for pagination.","type":"string"},"handle":{"description":"YouTube channel handle.","type":"string"}},"title":"YouTube Channel Playlists input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"nextCursor":{"type":"string"},"playlists":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"playlistUrl":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"thumbnail":{"type":"string"},"title":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"videoCount":{"type":"integer"}},"required":["id","title","playlistUrl","videoCount","thumbnail"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["playlists","nextCursor"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"YouTube Channel Playlists output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"YouTube Channel Playlists","tags":["youtube"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/youtube.channel_shorts":{"post":{"description":"List a YouTube channel's Shorts by handle or channel ID with cursor pagination (title, views, likes, duration).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"youtube_channel_shorts","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"@starterstory"},"schema":{"additionalProperties":false,"anyOf":[{"required":["handle"]},{"required":["channelId"]}],"example":{"handle":"@starterstory"},"properties":{"channelId":{"description":"YouTube channel ID.","type":"string"},"cursor":{"description":"Continuation token from a previous response for pagination.","type":"string"},"handle":{"description":"YouTube channel handle.","type":"string"},"sort":{"description":"Sort order.","enum":["newest","popular"],"type":"string"}},"title":"YouTube Channel Shorts input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"nextCursor":{"type":"string"},"shorts":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"duration":{"type":"string"},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"type":"integer"},"title":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"views":{"type":"integer"}},"required":["id","url","title","views","likes","duration"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["shorts","nextCursor"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"YouTube Channel Shorts output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"YouTube Channel Shorts","tags":["youtube"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/youtube.channel_videos":{"post":{"description":"List a YouTube channel's videos by handle or channel ID with cursor pagination (title, views, length, publish time).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"youtube_channel_videos","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"handle":"@mkbhd"},"schema":{"additionalProperties":false,"anyOf":[{"required":["handle"]},{"required":["channelId"]}],"example":{"handle":"@mkbhd"},"properties":{"channelId":{"description":"YouTube channel ID.","type":"string"},"cursor":{"description":"Continuation token from a previous response for pagination.","type":"string"},"handle":{"description":"YouTube channel handle.","type":"string"},"sort":{"description":"Sort order.","enum":["latest","popular"],"type":"string"}},"title":"YouTube channel videos input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"nextCursor":{"type":"string"},"videos":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"lengthText":{"type":"string"},"publishedTime":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"views":{"type":"integer"}},"required":["id","url","title","views","lengthText","publishedTime"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["videos","nextCursor"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"YouTube channel videos output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"YouTube Channel Videos","tags":["youtube"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/youtube.comment_replies":{"post":{"description":"List replies to a YouTube comment using a continuation token with cursor pagination (text, author, likes, publish time).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"youtube_comment_replies","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"continuationToken":"Eg0SC19fZm1EajBaSjFRGAYygwEaUBIaVWd3aXRjRk9fdmtpM0x4LUNfZDRBYUFCQWciAggAKhhVQ1g2T1EzRGtjc2JZTkU2SDh1UVF1VkEyC19fZm1EajBaSjFRQABICoIBAggBQi9jb21tZW50LXJlcGxpZXMtaXRlbS1VZ3dpdGNGT192a2kzTHgtQ19kNEFhQUJBZw=="},"schema":{"additionalProperties":false,"example":{"continuationToken":"Eg0SC19fZm1EajBaSjFRGAYygwEaUBIaVWd3aXRjRk9fdmtpM0x4LUNfZDRBYUFCQWciAggAKhhVQ1g2T1EzRGtjc2JZTkU2SDh1UVF1VkEyC19fZm1EajBaSjFRQABICoIBAggBQi9jb21tZW50LXJlcGxpZXMtaXRlbS1VZ3dpdGNGT192a2kzTHgtQ19kNEFhQUJBZw=="},"properties":{"continuationToken":{"description":"Replies continuation token from the comments endpoint, or the continuationToken from a previous replies response for further pagination.","type":"string"}},"required":["continuationToken"],"title":"YouTube Comment Replies input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"comments":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"authorName":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"content":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"type":"integer"},"publishedTime":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","content","authorName","likes","publishedTime"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"nextCursor":{"type":"string"}},"required":["comments","nextCursor"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"YouTube Comment Replies output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"YouTube Comment Replies","tags":["youtube"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/youtube.community_post":{"post":{"description":"Fetch a single YouTube community post by URL (text, images, channel, publish time).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"youtube_community_post","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.youtube.com/post/Ugkx1LonSRBBUqASv-J8j9_FesxwlMAhT3_e"},"schema":{"additionalProperties":false,"example":{"url":"https://www.youtube.com/post/Ugkx1LonSRBBUqASv-J8j9_FesxwlMAhT3_e"},"properties":{"url":{"description":"URL of the YouTube community post.","type":"string"}},"required":["url"],"title":"YouTube Community Post input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"channelHandle":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"channelTitle":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"content":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"publishedTime":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","content","publishedTime","channelTitle","channelHandle"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"YouTube Community Post output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"YouTube Community Post","tags":["youtube"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/youtube.playlist":{"post":{"description":"List every video in a YouTube playlist (title, length, and channel per video plus playlist owner and totals).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"youtube_playlist","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"playlistId":"PLMC9KNkIncKtPzgY-5rmhvj7fax8fdxoj"},"schema":{"additionalProperties":false,"example":{"playlistId":"PLMC9KNkIncKtPzgY-5rmhvj7fax8fdxoj"},"properties":{"playlistId":{"description":"The playlist ID: the \"list\" parameter in a playlist URL (e.g. \"PLu0W_9lII9ahIappRPN0MCAgtOu3lQjQi\").","type":"string"}},"required":["playlistId"],"title":"YouTube playlist input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"owner":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"totalVideos":{"type":"integer"},"videos":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"channel":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"lengthSeconds":{"type":"integer"},"lengthText":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"thumbnail":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"type":"string"},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","title","url","thumbnail","lengthText","lengthSeconds","channel"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["title","owner","totalVideos","videos"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"YouTube playlist output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"YouTube Playlist","tags":["youtube"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/youtube.search":{"post":{"description":"Search YouTube and get matching videos (title, channel, views, length, publish time) as normalized JSON.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"youtube_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"query":"how to cook rice"},"schema":{"additionalProperties":false,"example":{"query":"how to cook rice"},"properties":{"cursor":{"description":"Continuation token from a previous response for pagination.","type":"string"},"query":{"description":"The YouTube search query.","type":"string"},"sortBy":{"default":"relevance","description":"Sort order: \"relevance\" (default) or \"popular\" (most-viewed).","enum":["relevance","popular"],"type":"string"},"uploadDate":{"description":"Filter by upload recency. Omit for any time.","enum":["today","this_week","this_month","this_year"],"type":"string"}},"required":["query"],"title":"YouTube search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"videos":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"channel":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"lengthText":{"type":"string"},"publishedTime":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"views":{"type":"integer"}},"required":["id","url","title","channel","views","lengthText","publishedTime"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["videos"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"YouTube search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"YouTube Search","tags":["youtube"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/youtube.search_hashtag":{"post":{"description":"Search YouTube videos by hashtag with cursor pagination (title, channel, views, length, publish time).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"youtube_search_hashtag","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"hashtag":"funny"},"schema":{"additionalProperties":false,"example":{"hashtag":"funny"},"properties":{"cursor":{"description":"Continuation token from a previous response for pagination.","type":"string"},"hashtag":{"description":"Hashtag to search for (without the leading #).","type":"string"},"type":{"description":"Content filter.","enum":["all","shorts"],"type":"string"}},"required":["hashtag"],"title":"YouTube Hashtag Search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"nextCursor":{"type":"string"},"videos":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"channelTitle":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"lengthText":{"type":"string"},"publishedTime":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"views":{"type":"integer"}},"required":["id","url","title","channelTitle","views","lengthText","publishedTime"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["videos","nextCursor"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"YouTube Hashtag Search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"YouTube Hashtag Search","tags":["youtube"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/youtube.trending_shorts":{"post":{"description":"List currently trending YouTube Shorts (title, channel, views, likes, duration).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"youtube_trending_shorts","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{},"schema":{"additionalProperties":false,"example":{},"properties":{},"title":"YouTube Trending Shorts input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"shorts":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"channelTitle":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"duration":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"type":"integer"},"title":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"views":{"type":"integer"}},"required":["id","url","title","channelTitle","views","likes","duration"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["shorts"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"YouTube Trending Shorts output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"YouTube Trending Shorts","tags":["youtube"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/youtube.video":{"post":{"description":"Fetch a YouTube video's metadata (title, channel, views, likes, duration, publish date) by URL or ID.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"youtube_video","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ"},"schema":{"additionalProperties":false,"anyOf":[{"required":["url"]},{"required":["id"]}],"example":{"url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ"},"properties":{"id":{"description":"YouTube video ID.","type":"string"},"url":{"description":"Full YouTube video URL.","type":"string"}},"title":"YouTube video input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The video result, or null when not found.","oneOf":[{"type":"null"},{"properties":{"channel":{"description":"Name of the channel that published the video. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"comments":{"description":"Number of comments.","type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"durationMs":{"description":"Duration of the video in milliseconds.","type":"integer"},"id":{"description":"Unique identifier of the video. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"description":"Number of likes.","type":"integer"},"title":{"description":"Title of the video. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"views":{"description":"Number of views.","type":"integer"}},"required":["id","title","channel","views","likes","comments","durationMs","createdUtc"],"type":"object"}]},"found":{"description":"Whether the video was found.","type":"boolean"}},"required":["found","data"],"title":"YouTube video output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"YouTube Video","tags":["youtube"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/youtube.video_comments":{"post":{"description":"List the comments on a YouTube video by URL with cursor pagination (text, author, likes, reply count).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** 2 independent lanes - a failed attempt fails over to the next lane automatically, and the same normalized schema comes back either way.","operationId":"youtube_video_comments","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ"},"schema":{"additionalProperties":false,"example":{"url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ"},"properties":{"cursor":{"description":"Continuation token from a previous response for pagination.","type":"string"},"order":{"description":"Comment order (e.g. top, newest).","type":"string"},"url":{"description":"Full YouTube video URL.","type":"string"}},"required":["url"],"title":"YouTube video comments input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"comments":{"description":"Populated whenever the provider has data for the entity.","items":{"properties":{"author":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"likes":{"type":"integer"},"publishedTime":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"replies":{"type":"integer"},"text":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","text","author","likes","replies","publishedTime"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"nextCursor":{"type":"string"}},"required":["comments","nextCursor"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"YouTube video comments output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"YouTube Video Comments","tags":["youtube"],"x-payment-info":{"price":{"currency":"USD","max":"0.003250","min":"0.002000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/youtube.video_sponsors":{"post":{"description":"Detect suspected sponsors and paid promotions in a YouTube video by URL (sponsor names, websites, confidence).\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"youtube_video_sponsors","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.youtube.com/watch?v=AVO0ifle-OU"},"schema":{"additionalProperties":false,"example":{"url":"https://www.youtube.com/watch?v=AVO0ifle-OU"},"properties":{"language":{"description":"2-letter language code for transcript lookup (e.g. en, es, fr).","type":"string"},"url":{"description":"YouTube video or Short URL.","type":"string"}},"required":["url"],"title":"YouTube Video Sponsors input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"detectionStatus":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"isPaidPromotion":{"type":"boolean"},"suspectedSponsors":{"items":{"properties":{"confidence":{"type":"string"},"name":{"type":"string"},"website":{"type":"string"}},"required":["name","website","confidence"],"type":"object"},"type":"array"},"title":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"videoId":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["videoId","title","isPaidPromotion","detectionStatus","suspectedSponsors"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"YouTube Video Sponsors output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"YouTube Video Sponsors","tags":["youtube"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/youtube.video_transcript":{"post":{"description":"Fetch the transcript/captions of a YouTube video by URL or ID.\n\n**Price:** \\$2.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"youtube_video_transcript","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ"},"schema":{"additionalProperties":false,"anyOf":[{"required":["url"]},{"required":["id"]}],"example":{"url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ"},"properties":{"id":{"description":"YouTube video ID.","type":"string"},"url":{"description":"Full YouTube video URL.","type":"string"}},"title":"YouTube video transcript input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"properties":{"language":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"transcript":{"description":"Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["transcript","language"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"YouTube video transcript output","type":"object","x-anyapi-heavy":true},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"YouTube Video Transcript","tags":["youtube"],"x-payment-info":{"price":{"amount":"0.002000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/zhihu.answer":{"post":{"description":"Fetch a public Zhihu answer with normalized author and question data.\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"zhihu_answer","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"answerId":"2054145988235880002"},"schema":{"additionalProperties":false,"example":{"answerId":"2054145988235880002"},"properties":{"answerId":{"description":"Zhihu answer identifier.","type":"string"}},"required":["answerId"],"title":"Zhihu answer input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Normalized answer data, or null when not found.","oneOf":[{"type":"null"},{"properties":{"authorHeadline":{"description":"Author headline.","type":"string"},"authorImage":{"description":"Author avatar URL.","format":"uri","type":"string"},"authorName":{"description":"Author display name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorToken":{"description":"Author URL token.","type":"string"},"authorUserId":{"description":"Author identifier.","type":"string"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"excerpt":{"description":"Answer excerpt. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Answer identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"questionId":{"description":"Parent question identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"questionTitle":{"description":"Parent question title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"updatedUtc":{"description":"Last update UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"url":{"description":"Canonical answer URL. Populated whenever the provider has data for the entity.","format":"uri","type":"string","x-anyapi-must-populate":true}},"required":["id","url"],"type":"object"}]},"found":{"description":"True when the answer was found.","type":"boolean"}},"required":["found","data"],"title":"Zhihu answer output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Zhihu Answer","tags":["zhihu"],"x-payment-info":{"price":{"amount":"0.001000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/zhihu.profile":{"post":{"description":"Fetch a public Zhihu profile with normalized identity and audience data.\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"zhihu_profile","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"userToken":"ming-he-43-93"},"schema":{"additionalProperties":false,"example":{"userToken":"ming-he-43-93"},"properties":{"userToken":{"description":"Zhihu user URL token.","type":"string"}},"required":["userToken"],"title":"Zhihu profile input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Normalized profile data, or null when not found.","oneOf":[{"type":"null"},{"properties":{"answers":{"description":"Published answer count.","type":"integer"},"articles":{"description":"Published article count.","type":"integer"},"followers":{"description":"Follower count.","type":"integer"},"gender":{"description":"Gender code reported by Zhihu.","type":"integer"},"headline":{"description":"Profile headline. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"User identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"image":{"description":"Profile image URL. Populated whenever the provider has data for the entity.","format":"uri","type":"string","x-anyapi-must-populate":true},"ipLocation":{"description":"IP location label reported by Zhihu.","type":"string"},"name":{"description":"Display name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"organization":{"description":"Whether this is an organization profile.","type":"boolean"},"url":{"description":"Canonical profile URL. Populated whenever the provider has data for the entity.","format":"uri","type":"string","x-anyapi-must-populate":true},"userToken":{"description":"User URL token. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["id","userToken","url"],"type":"object"}]},"found":{"description":"True when the profile was found.","type":"boolean"}},"required":["found","data"],"title":"Zhihu profile output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Zhihu Profile","tags":["zhihu"],"x-payment-info":{"price":{"amount":"0.001000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/zhihu.question":{"post":{"description":"Fetch a public Zhihu question with normalized text and engagement statistics.\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"zhihu_question","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"questionId":"37811449"},"schema":{"additionalProperties":false,"example":{"questionId":"37811449"},"properties":{"questionId":{"description":"Zhihu question identifier.","type":"string"}},"required":["questionId"],"title":"Zhihu question input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Normalized question data, or null when not found.","oneOf":[{"type":"null"},{"properties":{"answers":{"description":"Answer count.","type":"integer"},"comments":{"description":"Comment count.","type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"description":{"description":"Question body as returned by Zhihu. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"excerpt":{"description":"Short question excerpt.","type":"string"},"followers":{"description":"Follower count.","type":"integer"},"id":{"description":"Question identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Question title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"updatedUtc":{"description":"Last update UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"url":{"description":"Canonical question URL. Populated whenever the provider has data for the entity.","format":"uri","type":"string","x-anyapi-must-populate":true},"views":{"description":"View count.","type":"integer"}},"required":["id","url"],"type":"object"}]},"found":{"description":"True when the question was found.","type":"boolean"}},"required":["found","data"],"title":"Zhihu question output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Zhihu Question","tags":["zhihu"],"x-payment-info":{"price":{"amount":"0.001000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/zhihu.question_answers":{"post":{"description":"List public answers to a Zhihu question with normalized authors and engagement data.\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"zhihu_question_answers","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":5,"offset":0,"order":"default","questionId":"37811449"},"schema":{"additionalProperties":false,"example":{"limit":5,"offset":0,"order":"default","questionId":"37811449"},"properties":{"cursor":{"default":"","description":"Pagination cursor from an answer item in the previous response.","type":"string"},"limit":{"default":5,"description":"Number of answers requested per page.","type":"integer"},"offset":{"default":0,"description":"Pagination offset.","type":"integer"},"order":{"default":"default","description":"Answer ordering: default ranking or recently updated.","enum":["default","updated"],"type":"string"},"questionId":{"description":"Zhihu question identifier.","type":"string"},"sessionId":{"default":"","description":"Pagination session identifier returned in the previous response.","type":"string"}},"required":["questionId"],"title":"Zhihu question answers input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Answer results and pagination state, or null when none were found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"answers":{"description":"Normalized answers. Populated whenever the provider has data for the entity.","items":{"properties":{"authorImage":{"description":"Author avatar URL.","format":"uri","type":"string"},"authorName":{"description":"Author display name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorToken":{"description":"Author URL token.","type":"string"},"authorUserId":{"description":"Author identifier.","type":"string"},"comments":{"description":"Comment count.","type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.","type":"number","x-anyapi-must-populate":true},"cursor":{"description":"Cursor associated with this answer; use the final item cursor for the next page.","type":"string"},"excerpt":{"description":"Answer excerpt. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Answer identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"saves":{"description":"Save count.","type":"integer"},"thanks":{"description":"Thanks count.","type":"integer"},"updatedUtc":{"description":"Last update UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"url":{"description":"Canonical answer URL. Populated whenever the provider has data for the entity.","format":"uri","type":"string","x-anyapi-must-populate":true},"votes":{"description":"Upvote count.","type":"integer"}},"required":["id","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"isEnd":{"description":"Whether the result set has reached its final page.","type":"boolean"},"sessionId":{"description":"Session identifier to pass when requesting another page.","type":"string"}},"required":["isEnd","sessionId","answers"],"type":"object"}]},"found":{"description":"True when answers were found.","type":"boolean"}},"required":["found","data"],"title":"Zhihu question answers output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Zhihu Question Answers","tags":["zhihu"],"x-payment-info":{"price":{"amount":"0.001000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/zhihu.search_articles":{"post":{"description":"Search public Zhihu articles by keyword with normalized author and engagement data.\n\n**Price:** \\$1.00 per 1,000 requests (flat per request - same cost regardless of results returned).\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"zhihu_search_articles","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":"20","query":"deepseek","showAllTopics":0},"schema":{"additionalProperties":false,"example":{"limit":"20","query":"deepseek","showAllTopics":0},"properties":{"limit":{"default":"20","description":"Number of articles requested per page.","type":"string"},"offset":{"default":"0","description":"Result offset returned as nextOffset in the previous response.","type":"string"},"query":{"description":"Search keyword.","type":"string"},"searchHashId":{"default":"","description":"Search hash identifier returned in the previous response.","type":"string"},"showAllTopics":{"default":0,"description":"Whether to include all topics: 0 excludes them and 1 includes them.","type":"integer"},"sort":{"default":"","description":"Article ordering: comprehensive, most upvoted, or newest.","enum":["","upvoted_count","created_time"],"type":"string"},"timeInterval":{"default":"","description":"Optional publication-time filter.","enum":["","a_day","a_week","a_month","three_months","half_a_year","a_year"],"type":"string"},"verticalInfo":{"default":"0,0,0,0,0,0,0,0,0,2,0,0","description":"Article-search vertical continuation state returned as nextVerticalInfo in the previous response.","type":"string"}},"required":["query"],"title":"Zhihu article search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"Article results and pagination state, or null when none were found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"articles":{"description":"Normalized article results. Populated whenever the provider has data for the entity.","items":{"properties":{"authorImage":{"description":"Author avatar URL.","format":"uri","type":"string"},"authorName":{"description":"Author display name. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"authorToken":{"description":"Author URL token.","type":"string"},"authorUserId":{"description":"Author identifier.","type":"string"},"comments":{"description":"Comment count.","type":"integer"},"createdUtc":{"description":"UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"excerpt":{"description":"Article excerpt. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"id":{"description":"Article identifier. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"title":{"description":"Article title. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"updatedUtc":{"description":"Last update UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.","type":"number"},"url":{"description":"Canonical article URL. Populated whenever the provider has data for the entity.","format":"uri","type":"string","x-anyapi-must-populate":true},"votes":{"description":"Upvote count.","type":"integer"}},"required":["id","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true},"isEnd":{"description":"Whether the result set has reached its final page.","type":"boolean"},"nextOffset":{"description":"Result offset to pass as offset when requesting the next page.","type":"string"},"nextVerticalInfo":{"description":"Article-search vertical continuation state to pass as verticalInfo when requesting the next page.","type":"string"},"searchHashId":{"description":"Search hash identifier to pass when requesting another page.","type":"string"}},"required":["isEnd","nextOffset","searchHashId","nextVerticalInfo","articles"],"type":"object"}]},"found":{"description":"True when articles were found.","type":"boolean"}},"required":["found","data"],"title":"Zhihu article search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Zhihu Article Search","tags":["zhihu"],"x-payment-info":{"price":{"amount":"0.001000","currency":"USD","mode":"fixed"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/zillow.property":{"post":{"description":"Fetch full details for a single Zillow property listing by URL (price, facts and features, photos, and price/tax history).\n\n**Price:** billed per result - \\$2.40 per 1,000 results, capped at \\$2.40 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"zillow_property","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://www.zillow.com/homedetails/4510-Secure-Ln-Austin-TX-78725/83126034_zpid/"},"schema":{"additionalProperties":false,"example":{"url":"https://www.zillow.com/homedetails/4510-Secure-Ln-Austin-TX-78725/83126034_zpid/"},"properties":{"url":{"description":"Zillow property details URL (e.g. https://www.zillow.com/homedetails/123-Main-St-Anytown-CA-90210/12345678_zpid/).","type":"string"}},"required":["url"],"title":"Zillow property input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"description":"The result wrapper, or null when the property was not found.","oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"The matched property record (single element for a property lookup). Populated whenever the provider has data for the entity.","items":{"properties":{"addressLine":{"description":"Street address line of the property.","type":"string"},"baths":{"description":"Number of bathrooms.","type":"number"},"beds":{"description":"Number of bedrooms.","type":"number"},"city":{"description":"City the property is in.","type":"string"},"county":{"description":"County the property is in.","type":"string"},"currency":{"description":"Currency code for the price (e.g. USD).","type":"string"},"description":{"description":"Listing description text.","type":"string"},"homeStatus":{"description":"Listing status (e.g. FOR_SALE, RECENTLY_SOLD, OTHER).","type":"string"},"homeType":{"description":"Home type (e.g. SINGLE_FAMILY, CONDO, TOWNHOUSE).","type":"string"},"image":{"description":"Primary listing photo URL.","type":"string"},"latitude":{"description":"Latitude of the property in decimal degrees.","type":"number"},"longitude":{"description":"Longitude of the property in decimal degrees.","type":"number"},"postalCode":{"description":"Postal (ZIP) code of the property.","type":"string"},"price":{"description":"Listed price in the listing currency.","type":"number"},"propertyTaxRate":{"description":"Annual property tax rate as a percentage.","type":"number"},"sqft":{"description":"Interior living area in square feet.","type":"number"},"state":{"description":"Two-letter state code the property is in.","type":"string"},"title":{"description":"Street address line used as the property title.","type":"string"},"url":{"description":"Canonical Zillow property detail page URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"zpid":{"description":"Zillow property id (zpid), the stable identifier for the property. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["zpid","url"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"description":"True when the property URL resolved to a listing.","type":"boolean"}},"required":["found","data"],"title":"Zillow property output","type":"object","x-anyapi-heavy":true},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Zillow Property","tags":["zillow"],"x-payment-info":{"price":{"currency":"USD","max":"0.002400","min":"0.000000","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}},"/v1/run/zillow.search":{"post":{"description":"Search Zillow for-sale, rental, or sold listings by region-level location (city, ZIP, county, or neighborhood) with optional price, bedroom, living-area, home-type, recency, and sort filters and get matching properties (price, address, beds, baths, living area, status, Zestimate) as normalized JSON.\n\n**Price:** billed per result - \\$0.50 per 1,000 requests base + \\$3.00 per 1,000 results, capped at \\$75.50 per 1,000 requests.\n\n**Routing:** one lane serves this API today, so a failed attempt has nowhere to fail over to. Failed attempts are never billed.","operationId":"zillow_search","parameters":[{"description":"Optional. Comma-separated keys (dotted paths like `author.name` descend into nested objects) to keep on each result item. Keys are matched relative to each result item after the `data`/`items` envelope is unwrapped, not against the top-level response envelope, so use `jq` to reshape the whole envelope. Shrinks the response without changing cost.","in":"query","name":"fields","required":false,"schema":{"type":"string"}},{"description":"Optional. Cap the number of result rows returned; a `_truncated` note reports how many were withheld so you can page via the API's own `limit`. Does not change cost.","in":"query","name":"max_items","required":false,"schema":{"minimum":0,"type":"integer"}},{"description":"Optional. Return only a structural outline (top-level keys, item counts, and per-field byte sizes) instead of the full data. Does not change cost.","in":"query","name":"summary","required":false,"schema":{"type":"boolean"}},{"description":"Optional. A jq expression applied to the result envelope; its output replaces `output` (multiple outputs collect into an array). Reshape freely, e.g. `jq=.data | {title, description, md: .markdown[:3500]}`. Runs sandboxed with a 250ms / 2MB budget; on failure the full result is returned with a `jqError`. Does not change cost.","in":"query","name":"jq","required":false,"schema":{"type":"string"}},{"description":"Optional wallet idempotency key, scoped to this customer for 24 hours. When the gateway honors the key, this synchronous in-process execution can continue after the caller disconnects, bounded by its execution deadline. A completed replayable result charges normally exactly once and can be replayed without another provider run or charge. A pending duplicate returns 409 idempotency_in_progress; reuse with different request semantics returns 409 idempotency_conflict.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"limit":3,"location":"Austin, TX","maxPrice":900000,"minBedrooms":3,"operation":"buy"},"schema":{"additionalProperties":false,"example":{"limit":3,"location":"Austin, TX","maxPrice":900000,"minBedrooms":3,"operation":"buy"},"properties":{"daysOnZillow":{"description":"Only include listings on Zillow at most this long (e.g. 1_week).","enum":["1_day","1_week","2_weeks","1_month","3_months","6_months","12_months","24_months","36_months"],"type":"string"},"homeTypes":{"description":"Filter by property type; omit for any. Rentals support only singleFamily, multiFamily, townhome, and condo (e.g. [\"singleFamily\", \"condo\"]).","items":{"enum":["singleFamily","multiFamily","townhome","condo","apartment","manufactured","land"],"type":"string"},"type":"array"},"includeAcceptingBackupOffers":{"description":"Include listings accepting backup offers, which Zillow excludes by default (e.g. true).","type":"boolean"},"includePendingAndUnderContract":{"description":"Include pending and under-contract listings, which Zillow excludes by default (e.g. true).","type":"boolean"},"includeRoomForRent":{"description":"Include room-for-rent listings in rent searches; when omitted or false only entire places are returned (e.g. true).","type":"boolean"},"limit":{"description":"Maximum number of results to return (1-25, default 25). You are billed per result returned, so a lower limit costs less.","maximum":25,"minimum":1,"type":"integer"},"listingTypes":{"description":"Listing types to include for buy searches; omit for all standard types. fsba = agent listed, fsbo = for sale by owner. Ignored for rent and sold (e.g. [\"newConstruction\"]).","items":{"enum":["fsba","fsbo","newConstruction","comingSoon","auction","foreclosure","foreclosed","preforeclosure"],"type":"string"},"type":"array"},"location":{"description":"Region-level location to search: ZIP code, city and state, county, or neighborhood (e.g. 'Austin, TX' or '78701'). Street addresses are not supported; use the property's ZIP code instead.","type":"string"},"maxBedrooms":{"description":"Maximum number of bedrooms (e.g. 5).","minimum":0,"type":"integer"},"maxLivingAreaSqft":{"description":"Maximum living area in square feet (e.g. 3000).","minimum":0,"type":"integer"},"maxPrice":{"description":"Maximum price in USD: monthly rent for rentals, total price for buy/sold (e.g. 750000).","minimum":0,"type":"integer"},"minBedrooms":{"description":"Minimum number of bedrooms (e.g. 3).","minimum":0,"type":"integer"},"minLivingAreaSqft":{"description":"Minimum living area in square feet (e.g. 1500).","minimum":0,"type":"integer"},"minPrice":{"description":"Minimum price in USD: monthly rent for rentals, total price for buy/sold (e.g. 250000).","minimum":0,"type":"integer"},"operation":{"default":"buy","description":"Listing type: buy (for sale), rent, or sold.","enum":["buy","rent","sold"],"type":"string"},"showOnlyPriceReductions":{"description":"Only show listings with a price reduction. Buy searches only; ignored for rentals (e.g. true).","type":"boolean"},"sortBy":{"description":"Sort order for results; omit for Zillow's default relevance. rentalPriorityScore applies to rent searches only (e.g. newest).","enum":["newest","recentlyChanged","price_high","price_low","bedrooms","bathrooms","rentalPriorityScore"],"type":"string"}},"required":["location"],"title":"Zillow search input","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"costUsd":{"description":"USD charged on the original run. On a replay this value is echoed for parity; the replay itself is free.","type":"number"},"items":{"description":"Number of result rows returned. For per-result SKUs the per-item cost is charged against this count; for input-priced SKUs the charge is per submitted input, independent of this count.","type":"integer"},"jqError":{"description":"Present only when a `jq` expression failed; `output` then carries the full unshaped result and this explains why the reshape did not apply.","type":"string"},"output":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"oneOf":[{"type":"null"},{"additionalProperties":false,"properties":{"items":{"description":"Property listing records matching the search: address, price, beds, baths, living area, property type, status, Zestimate, and coordinates. Populated whenever the provider has data for the entity.","items":{"properties":{"baths":{"description":"Number of bathrooms.","type":"number"},"beds":{"description":"Number of bedrooms.","type":"number"},"city":{"type":"string"},"currency":{"description":"ISO currency code of the price (e.g. usd).","type":"string"},"daysOnZillow":{"description":"Days the listing has been on Zillow.","type":"integer"},"image":{"description":"URL of the primary listing photo. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"latitude":{"type":"number"},"livingArea":{"description":"Interior living area in square feet.","type":"number"},"longitude":{"type":"number"},"lotSize":{"description":"Lot size in square feet.","type":"number"},"price":{"description":"List price in the listing currency.","type":"number"},"propertyType":{"description":"Property type (e.g. singleFamily, condo, townhouse).","type":"string"},"rentZestimate":{"description":"Zillow estimated monthly rent.","type":"number"},"state":{"description":"Two-letter state code.","type":"string"},"status":{"description":"Listing status (e.g. forSale, forRent, sold).","type":"string"},"streetAddress":{"description":"Street address of the property. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"url":{"description":"Absolute Zillow listing URL. Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true},"yearBuilt":{"type":"integer"},"zestimate":{"description":"Zillow estimated market value.","type":"number"},"zipcode":{"type":"string"},"zpid":{"description":"Zillow property id (zpid). Populated whenever the provider has data for the entity.","type":"string","x-anyapi-must-populate":true}},"required":["url","zpid"],"type":"object"},"type":"array","x-anyapi-must-populate":true}},"required":["items"],"type":"object"}]},"found":{"type":"boolean"}},"required":["found","data"],"title":"Zillow search output","type":"object"},{"type":"null"}],"description":"Normalized output, or null when the replay payload was not retained."},"provider":{"description":"Always \"AnyAPI\".","type":"string"},"replayed":{"description":"True when this response replays the durable result of an earlier run without billing or upstream execution.","type":"boolean"},"resultId":{"description":"Opaque handle to the full unshaped result, cached ~15 min. Re-shape it for free (fields/max_items/summary/jq) via GET /v1/results/{id}, no re-billing. Absent when the result was too large to cache.","type":"string"}},"required":["output","provider","costUsd","replayed"],"type":"object"}}},"description":"Normalized result.","headers":{"Idempotency-Replayed":{"description":"Present only when the request carried an Idempotency-Key this gateway honored. \"false\" means the key was claimed and the run executed freshly; \"true\" means it replayed a prior identical run and was NOT charged again. Absent means either no key was sent or this gateway does not honor keys, so a retry could be charged twice.","schema":{"enum":["false","true"],"type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Input did not match the schema, or the upstream rejected the request (no charge)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Missing or invalid API key."},"402":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequiredError"},{"$ref":"#/components/schemas/TrialCapReached"}]}}},"description":"Insufficient wallet balance or spend cap (no charge). Agent trials receive a trial_cap_reached continuation with a live RFC 8628 device authorization."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unknown SKU, or the upstream had no matching resource (no charge)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Idempotency collision. Codes: idempotency_in_progress means retry after the Retry-After delay; idempotency_conflict means use a new key for different request semantics; idempotency_needs_review means stop retrying and contact AnyAPI support with X-Anyapi-Request-Id."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The request was well formed but this API cannot serve the requested target site; the body's `alternatives` array lists the AnyAPI APIs that can (no charge)."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The upstream was rate limited, retry shortly (no charge)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Every provider failed with a server/transport error (charge released)."}},"summary":"Zillow Search","tags":["zillow"],"x-payment-info":{"price":{"currency":"USD","max":"0.075500","min":"0.000500","mode":"dynamic"},"protocols":[{"x402":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","scheme":"exact"}},{"mpp":{"asset":"0x20c000000000000000000000b9537d11c60e8b50","currency":"USD","intent":"charge","method":"tempo","network":"tempo","payTo":"0x754BD2A6799e766B1E2b9f1Ae7fBdC0CeD96ef13","rail":"tempo","scheme":"exact"}}]}}}},"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"servers":[{"url":"https://api.getanyapi.com"}],"tags":[{"name":"ahrefs","x-group":"Ahrefs"},{"name":"airbnb","x-group":"Airbnb"},{"name":"alibaba","x-group":"Alibaba"},{"name":"amazon","x-group":"Amazon"},{"name":"apollo","x-group":"Apollo"},{"name":"appstore","x-group":"Appstore"},{"name":"bluesky","x-group":"Bluesky"},{"name":"booking","x-group":"Booking"},{"name":"coinmarketcap","x-group":"Coinmarketcap"},{"name":"congress","x-group":"Congress"},{"name":"dexscreener","x-group":"Dexscreener"},{"name":"douyin","x-group":"Douyin"},{"name":"ebay","x-group":"Ebay"},{"name":"email","x-group":"Email"},{"name":"facebook","x-group":"Facebook"},{"name":"fiverr","x-group":"Fiverr"},{"name":"github","x-group":"Github"},{"name":"glassdoor","x-group":"Glassdoor"},{"name":"google","x-group":"Google"},{"name":"google-ads","x-group":"Google Ads"},{"name":"google-finance","x-group":"Google Finance"},{"name":"google-shopping","x-group":"Google Shopping"},{"name":"hackernews","x-group":"Hackernews"},{"name":"indeed","x-group":"Indeed"},{"name":"instagram","x-group":"Instagram"},{"name":"linkedin","x-group":"Linkedin"},{"name":"maps","x-group":"Maps"},{"name":"pandaexpress","x-group":"Pandaexpress"},{"name":"person","x-group":"Person"},{"name":"pinterest","x-group":"Pinterest"},{"name":"playstore","x-group":"Playstore"},{"name":"polymarket","x-group":"Polymarket"},{"name":"realtor","x-group":"Realtor"},{"name":"reddit","x-group":"Reddit"},{"name":"redfin","x-group":"Redfin"},{"name":"rednote","x-group":"Rednote"},{"name":"sec","x-group":"Sec"},{"name":"semrush","x-group":"Semrush"},{"name":"seo","x-group":"Seo"},{"name":"snapchat","x-group":"Snapchat"},{"name":"social","x-group":"Social"},{"name":"spotify","x-group":"Spotify"},{"name":"substack","x-group":"Substack"},{"name":"threads","x-group":"Threads"},{"name":"tiktok","x-group":"TikTok"},{"name":"tiktok-shop","x-group":"TikTok Shop"},{"name":"tripadvisor","x-group":"Tripadvisor"},{"name":"trustpilot","x-group":"Trustpilot"},{"name":"truthsocial","x-group":"Truthsocial"},{"name":"twitter","x-group":"X (Twitter)"},{"name":"upwork","x-group":"Upwork"},{"name":"walmart","x-group":"Walmart"},{"name":"web","x-group":"Web"},{"name":"weibo","x-group":"Weibo"},{"name":"yahoo-finance","x-group":"Yahoo Finance"},{"name":"yelp","x-group":"Yelp"},{"name":"youtube","x-group":"YouTube"},{"name":"zhihu","x-group":"Zhihu"},{"name":"zillow","x-group":"Zillow"}]}