{"openapi":"3.1.0","info":{"title":"FastAF API","x-service-name":"FastAF","x-website":"https://fastaf.co","version":"v1","contact":{"email":"support@fastaf.co","url":"https://fastaf.co"},"description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots. 500 free credits every month after email verification (not on x402); x402 pay-per-call from $0.003; optional prepaid credit packs from $10 for 20,000 credits, without expiry.","x-guidance":"Use GET /x402/v1/{endpoint} with query parameters or POST with a JSON body. Choose serp for Google search, maps for places, news/shopping/scholar/jobs for specialized search, ai for Google AI Mode, amazon/youtube for their resource variants, linkedin/x for public profiles, walmart/zillow/ebay for structured commerce or listings, scrape for public HTML or markdown, and screenshot for images. Use the dedicated zillow and ebay endpoints instead of scrape for those sites. The q and lang aliases are accepted for query (search_query on YouTube) and language. Send a valid unpaid request first; read the x402 v2 PAYMENT-REQUIRED header, sign with an x402 client such as @x402/fetch, and retry the identical URL with PAYMENT-SIGNATURE. USDC payment uses the network and amount in that live challenge; no API-key authentication is needed. Only successful results are settled; inspect PAYMENT-RESPONSE for the receipt. Prices here are decimal USD, while the challenge uses USDC atomic units (six decimals). All 22 data products have a fixed x402 price, including advanced search and resource/rendering variants.Prepaid API-key credit costs still depend on options. /x402/v1/extract (POST only, JSON body {url, schema}) returns JSON that validates against the given JSON Schema, at one fixed price for every mode; an answer that does not validate returns 422 extraction_failed and is not settled. Scrape site defaults, including Booking rendering and Reddit feed mode, are applied before quoting. A bare unsigned URL returns a default-variant discovery quote only: add valid parameters and request a new challenge before paying. Unpaid HEAD probes also return PAYMENT-REQUIRED with no body; use GET, not HEAD, to pay for data. Invalid parameterized requests and blocked targets return 402 when unsigned, or 400 before payment verification/settlement when signed; payment headers never bypass validation. Never reuse a settled signature for a new call. Respect Retry-After on rate/capacity errors. For the separate prepaid-key API and authenticated credit-pack top-up, see /v1/openapi.json. The complete API-key, signup and billing reference is at https://api.fastaf.co/openapi-api.json. Get a free API key at https://fastaf.co/signup/ with an email address, terms acceptance and browser verification. No card is required. POST /public/signup automatically creates the first API key and emails it with a confirmation link. It sets a dashboard session cookie but does not return an API key in the response. Save the key from the welcome email and follow the emailed GET /public/signin/{token} link before making data calls. FastAF stores only the key hash and cannot show or resend that key. After email confirmation, create additional or replacement keys in the dashboard (POST /v1/keys with the session cookie); those keys are shown only once. Email confirmation unlocks 500 free credits every month per account, shared across all keys and all REST/MCP endpoints and used before any paid credits. They reset to 500 at 00:00 UTC on the 1st of each month and do not carry over; they are not valid on x402. Failed calls use no credits. Unverified accounts receive email_verification_required (403) before any data call or credit reservation. Signups are limited per IPv4 /24 or IPv6 /64 network per UTC day (default 3); 429 means retry after the reset. GET /v1/usage reports free_credits_remaining and free_credits_reset_at separately from balance_credits. POST /v1/signup is retired and returns 410 signup_disabled. Prepaid credit packs: Starter $10 for 20,000 credits; Growth $29 for 75,000; Scale $99 for 300,000; Pro $299 for 1,000,000; Business $799 for 3,000,000. Paid credits never expire. Agents without an inbox can use /x402/v1/{endpoint} without an account, with x402 pay-per-call from $0.003.","x-signup-guidance":"Get a free API key at https://fastaf.co/signup/ with an email address, terms acceptance and browser verification. No card is required. POST /public/signup automatically creates the first API key and emails it with a confirmation link. It sets a dashboard session cookie but does not return an API key in the response. Save the key from the welcome email and follow the emailed GET /public/signin/{token} link before making data calls. FastAF stores only the key hash and cannot show or resend that key. After email confirmation, create additional or replacement keys in the dashboard (POST /v1/keys with the session cookie); those keys are shown only once. Email confirmation unlocks 500 free credits every month per account, shared across all keys and all REST/MCP endpoints and used before any paid credits. They reset to 500 at 00:00 UTC on the 1st of each month and do not carry over; they are not valid on x402. Failed calls use no credits. Unverified accounts receive email_verification_required (403) before any data call or credit reservation. Signups are limited per IPv4 /24 or IPv6 /64 network per UTC day (default 3); 429 means retry after the reset. GET /v1/usage reports free_credits_remaining and free_credits_reset_at separately from balance_credits. POST /v1/signup is retired and returns 410 signup_disabled. Prepaid credit packs: Starter $10 for 20,000 credits; Growth $29 for 75,000; Scale $99 for 300,000; Pro $299 for 1,000,000; Business $799 for 3,000,000. Paid credits never expire. Agents without an inbox can use /x402/v1/{endpoint} without an account, with x402 pay-per-call from $0.003."},"externalDocs":{"url":"https://fastaf.co"},"servers":[{"url":"https://api.fastaf.co"}],"paths":{"/v1/serp":{"get":{"tags":["API"],"summary":"Search engine results","description":"Google Search results (SERP) for a query, as JSON: organic result titles, URLs, snippets and positions. Supports keyword search, country and language targeting for source discovery, fact-finding and research. Price: 5-10 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"search_information":{"type":"object","properties":{"query_displayed":{"type":"string"}},"additionalProperties":true},"organic_results":{"type":"array","items":{"type":"object","properties":{"position":{"type":"number"},"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google SERP JSON. organic_results contains ranked title, link and snippet fields; search_information describes the query. Other Google result blocks may also appear."},"example":{"search_information":{"query_displayed":"best espresso machine for home"},"organic_results":[{"position":1,"title":"Best espresso machines for home brewing","link":"https://example.com/guides/espresso-machines","snippet":"Compare compact espresso machines by pressure, grinder and milk-steaming features."}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"getSerp","parameters":[{"name":"query","in":"query","required":true,"description":"Required Google search text; supports operators such as site:example.com and intitle:coffee. No default. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"results","in":"query","required":false,"description":"Maximum results retained by FastAF, integer 1-100. Omit for the full returned page. Google supplies up to 10 per page; use page for more, not a larger results value. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"page","in":"query","required":false,"description":"Zero-based Google results page, integer 0-100; default 0. Each page is a separate request. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"integer","minimum":0}},{"name":"advance_search","in":"query","required":false,"description":"Include advanced Google result features/snippets when true; true/false, default false. False: 5 credits; true: 10 credits per request.","schema":{"type":"boolean"}},{"name":"mob_search","in":"query","required":false,"description":"Request mobile rather than desktop Google results; true/false, default false. FastAF does not add a mobile surcharge. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"boolean"}},{"name":"html","in":"query","required":false,"description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"boolean"}},{"name":"deep_scrape","in":"query","required":false,"description":"Fetch content from organic-result destination pages as well as the SERP; true/false, default false. Use with advance_search=false; no FastAF surcharge. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"boolean"}},{"name":"domain","in":"query","required":false,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"country","in":"query","required":false,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"language","in":"query","required":false,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"location","in":"query","required":false,"description":"City-level search origin, e.g. Austin, Texas, United States; omit for source-default location. Cannot be combined with uule. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"uule","in":"query","required":false,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"cr","in":"query","required":false,"description":"Restrict documents by country: countryFR or countryFR|countryDE. Omitted: no explicit country restriction (unlike country, which localizes the search). No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"lr","in":"query","required":false,"description":"Document-language filter: lang_en or a pipe-separated list such as lang_en|lang_fr. Omitted: no explicit language restriction. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"tbs","in":"query","required":false,"description":"Google filter expression, e.g. qdr:d for the past day or qdr:w for the past week. Omitted: no explicit time/advanced filter. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"safe","in":"query","required":false,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"nfpr","in":"query","required":false,"description":"Spelling correction: string 1 excludes automatically corrected queries; 0 allows them (default 0). No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"filter","in":"query","required":false,"description":"Duplicate/omitted-result filtering: string 1 enables it (default); 0 includes similar and normally omitted results. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"ludocid","in":"query","required":false,"description":"Google business listing CID as a decimal string, copied from a Google local result. Omitted: no specific business selected. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"lsig","in":"query","required":false,"description":"Opaque Google local-listing signature used with a business/knowledge-panel lookup; copy from a Google URL. No default. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"kgmid","in":"query","required":false,"description":"Google Knowledge Graph entity ID, e.g. /m/09c7w0; may override other search filters except page/results. No default. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"si","in":"query","required":false,"description":"Opaque Google cached-search/knowledge-panel tab token; may override other filters except page/results. No default. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"ibp","in":"query","required":false,"description":"Google layout/expansion expression, e.g. gwp;0,7 for a ludocid lookup. Omitted: standard results layout. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"uds","in":"query","required":false,"description":"Opaque Google results-filter token copied from a Google search URL. Omitted: no extra token filter; do not invent a token. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"sample","in":"query","required":false,"description":"Set to 1 to get a fixed, illustrative example of this endpoint's output instead of a real call: the same JSON for everyone, marked {\"sample\": true, \"illustrative\": true}, ignoring every other parameter. No payment, API key or data source is involved; cached publicly for an hour and rate-limited per IP.","schema":{"type":"string","enum":["1"]}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]},"post":{"tags":["API"],"summary":"Search engine results","description":"Google Search results (SERP) for a query, as JSON: organic result titles, URLs, snippets and positions. Supports keyword search, country and language targeting for source discovery, fact-finding and research. Price: 5-10 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"search_information":{"type":"object","properties":{"query_displayed":{"type":"string"}},"additionalProperties":true},"organic_results":{"type":"array","items":{"type":"object","properties":{"position":{"type":"number"},"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google SERP JSON. organic_results contains ranked title, link and snippet fields; search_information describes the query. Other Google result blocks may also appear."},"example":{"search_information":{"query_displayed":"best espresso machine for home"},"organic_results":[{"position":1,"title":"Best espresso machines for home brewing","link":"https://example.com/guides/espresso-machines","snippet":"Compare compact espresso machines by pressure, grinder and milk-steaming features."}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"postSerp","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Keyword web search with country and language targeting; query is required.","examples":[{"query":"best espresso machine for home","country":"us","language":"en"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required Google search text; supports operators such as site:example.com and intitle:coffee. No default. No additional credits; 5 per request, or 10 with advance_search=true.","examples":["best espresso machine for home"]},"results":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum results retained by FastAF, integer 1-100. Omit for the full returned page. Google supplies up to 10 per page; use page for more, not a larger results value. No additional credits; 5 per request, or 10 with advance_search=true."},"page":{"type":"integer","minimum":0,"description":"Zero-based Google results page, integer 0-100; default 0. Each page is a separate request. No additional credits; 5 per request, or 10 with advance_search=true."},"advance_search":{"type":"boolean","description":"Include advanced Google result features/snippets when true; true/false, default false. False: 5 credits; true: 10 credits per request."},"mob_search":{"type":"boolean","description":"Request mobile rather than desktop Google results; true/false, default false. FastAF does not add a mobile surcharge. No additional credits; 5 per request, or 10 with advance_search=true."},"html":{"type":"boolean","description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No additional credits; 5 per request, or 10 with advance_search=true."},"deep_scrape":{"type":"boolean","description":"Fetch content from organic-result destination pages as well as the SERP; true/false, default false. Use with advance_search=false; no FastAF surcharge. No additional credits; 5 per request, or 10 with advance_search=true."},"domain":{"type":"string","maxLength":8192,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No additional credits; 5 per request, or 10 with advance_search=true."},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No additional credits; 5 per request, or 10 with advance_search=true.","examples":["us"]},"language":{"type":"string","maxLength":8192,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No additional credits; 5 per request, or 10 with advance_search=true.","examples":["en"]},"location":{"type":"string","maxLength":8192,"description":"City-level search origin, e.g. Austin, Texas, United States; omit for source-default location. Cannot be combined with uule. No additional credits; 5 per request, or 10 with advance_search=true."},"uule":{"type":"string","maxLength":8192,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No additional credits; 5 per request, or 10 with advance_search=true."},"cr":{"type":"string","maxLength":8192,"description":"Restrict documents by country: countryFR or countryFR|countryDE. Omitted: no explicit country restriction (unlike country, which localizes the search). No additional credits; 5 per request, or 10 with advance_search=true."},"lr":{"type":"string","maxLength":8192,"description":"Document-language filter: lang_en or a pipe-separated list such as lang_en|lang_fr. Omitted: no explicit language restriction. No additional credits; 5 per request, or 10 with advance_search=true."},"tbs":{"type":"string","maxLength":8192,"description":"Google filter expression, e.g. qdr:d for the past day or qdr:w for the past week. Omitted: no explicit time/advanced filter. No additional credits; 5 per request, or 10 with advance_search=true."},"safe":{"type":"string","maxLength":8192,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No additional credits; 5 per request, or 10 with advance_search=true."},"nfpr":{"type":"string","maxLength":8192,"description":"Spelling correction: string 1 excludes automatically corrected queries; 0 allows them (default 0). No additional credits; 5 per request, or 10 with advance_search=true."},"filter":{"type":"string","maxLength":8192,"description":"Duplicate/omitted-result filtering: string 1 enables it (default); 0 includes similar and normally omitted results. No additional credits; 5 per request, or 10 with advance_search=true."},"ludocid":{"type":"string","maxLength":8192,"description":"Google business listing CID as a decimal string, copied from a Google local result. Omitted: no specific business selected. No additional credits; 5 per request, or 10 with advance_search=true."},"lsig":{"type":"string","maxLength":8192,"description":"Opaque Google local-listing signature used with a business/knowledge-panel lookup; copy from a Google URL. No default. No additional credits; 5 per request, or 10 with advance_search=true."},"kgmid":{"type":"string","maxLength":8192,"description":"Google Knowledge Graph entity ID, e.g. /m/09c7w0; may override other search filters except page/results. No default. No additional credits; 5 per request, or 10 with advance_search=true."},"si":{"type":"string","maxLength":8192,"description":"Opaque Google cached-search/knowledge-panel tab token; may override other filters except page/results. No default. No additional credits; 5 per request, or 10 with advance_search=true."},"ibp":{"type":"string","maxLength":8192,"description":"Google layout/expansion expression, e.g. gwp;0,7 for a ludocid lookup. Omitted: standard results layout. No additional credits; 5 per request, or 10 with advance_search=true."},"uds":{"type":"string","maxLength":8192,"description":"Opaque Google results-filter token copied from a Google search URL. Omitted: no extra token filter; do not invent a token. No additional credits; 5 per request, or 10 with advance_search=true."}},"required":["query"]}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]}},"/v1/maps":{"get":{"tags":["API"],"summary":"Google Maps search or place details","description":"Local business and places search API for AI agents: Google Maps results as JSON with addresses, ratings, review counts, coordinates and place IDs when available. Supports searches by query and location or place details by place_id. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"search_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"address":{"type":"string"},"rating":{"type":"number"},"reviews":{"type":"number"},"gps_coordinates":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"additionalProperties":true},"place_id":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Maps JSON. search_results contains places with title, address, rating, reviews, place_id and gps_coordinates when available."},"example":{"search_results":[{"title":"Broadway Coffee","address":"1500 Broadway, New York, NY 10036","rating":4.6,"reviews":128,"gps_coordinates":{"latitude":40.7565,"longitude":-73.9869},"place_id":"ChIJmQJIxlVYwokRLgeuocVOGVU"}]}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"getMaps","parameters":[{"name":"query","in":"query","required":false,"description":"Maps search text, e.g. coffee in Rome; required unless place_id is supplied. Without location or ll, FastAF uses a place named in the query. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"location","in":"query","required":false,"description":"Search-centre place name, e.g. Rome, Italy (up to 200 characters). Cannot combine with ll. Omit to infer from query; unresolved or out-of-area results are not charged. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"ll","in":"query","required":false,"description":"Search centre as @latitude,longitude,zoom, e.g. @41.9028,12.4964,13z (coordinates in degrees; zoom 3z-30z; map height in metres also supported upstream). Needed for pagination. Cannot combine with location; omitted: infer from query/location. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"domain","in":"query","required":false,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"language","in":"query","required":false,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"country","in":"query","required":false,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"data","in":"query","required":false,"description":"Opaque data fragment copied from a Google Maps URL, e.g. !4m5!3m4!1s<id>!8m2!3d<lat>!4d<lon>. Used with type=place; unnecessary with place_id. No default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"place_id","in":"query","required":false,"description":"Google Maps place identifier, e.g. ChIJN1t_tDeuEmsRUsoyG83frY4, for one place's details. Required if query is omitted; no default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"type","in":"query","required":false,"description":"Maps operation: search for query results or place for details using data. Omit for query search or automatic place_id lookup. No option surcharge; 5 credits per successful request.","schema":{"type":"string","enum":["search","place"]}},{"name":"page","in":"query","required":false,"description":"Maps result offset, integer 0-100: 0 first page, 20 second, 40 third. Default 0; supply ll for pagination. Each page is a separate request. No option surcharge; 5 credits per successful request.","schema":{"type":"integer","minimum":0}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]},"post":{"tags":["API"],"summary":"Google Maps search or place details","description":"Local business and places search API for AI agents: Google Maps results as JSON with addresses, ratings, review counts, coordinates and place IDs when available. Supports searches by query and location or place details by place_id. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"search_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"address":{"type":"string"},"rating":{"type":"number"},"reviews":{"type":"number"},"gps_coordinates":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"additionalProperties":true},"place_id":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Maps JSON. search_results contains places with title, address, rating, reviews, place_id and gps_coordinates when available."},"example":{"search_results":[{"title":"Broadway Coffee","address":"1500 Broadway, New York, NY 10036","rating":4.6,"reviews":128,"gps_coordinates":{"latitude":40.7565,"longitude":-73.9869},"place_id":"ChIJmQJIxlVYwokRLgeuocVOGVU"}]}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"postMaps","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Local places search by query and map center (ll); alternatively, place_id selects a place lookup.","examples":[{"query":"coffee near Times Square","ll":"@40.758,-73.9855,14z","language":"en"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Maps search text, e.g. coffee in Rome; required unless place_id is supplied. Without location or ll, FastAF uses a place named in the query. No option surcharge; 5 credits per successful request.","examples":["coffee near Times Square"]},"location":{"type":"string","maxLength":8192,"description":"Search-centre place name, e.g. Rome, Italy (up to 200 characters). Cannot combine with ll. Omit to infer from query; unresolved or out-of-area results are not charged. No option surcharge; 5 credits per successful request."},"ll":{"type":"string","maxLength":8192,"description":"Search centre as @latitude,longitude,zoom, e.g. @41.9028,12.4964,13z (coordinates in degrees; zoom 3z-30z; map height in metres also supported upstream). Needed for pagination. Cannot combine with location; omitted: infer from query/location. No option surcharge; 5 credits per successful request.","examples":["@40.758,-73.9855,14z"]},"domain":{"type":"string","maxLength":8192,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No option surcharge; 5 credits per successful request."},"language":{"type":"string","maxLength":8192,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 5 credits per successful request.","examples":["en"]},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 5 credits per successful request."},"data":{"type":"string","maxLength":8192,"description":"Opaque data fragment copied from a Google Maps URL, e.g. !4m5!3m4!1s<id>!8m2!3d<lat>!4d<lon>. Used with type=place; unnecessary with place_id. No default. No option surcharge; 5 credits per successful request."},"place_id":{"type":"string","maxLength":8192,"description":"Google Maps place identifier, e.g. ChIJN1t_tDeuEmsRUsoyG83frY4, for one place's details. Required if query is omitted; no default. No option surcharge; 5 credits per successful request."},"type":{"type":"string","enum":["search","place"],"description":"Maps operation: search for query results or place for details using data. Omit for query search or automatic place_id lookup. No option surcharge; 5 credits per successful request."},"page":{"type":"integer","minimum":0,"description":"Maps result offset, integer 0-100: 0 first page, 20 second, 40 third. Default 0; supply ll for pagination. Each page is a separate request. No option surcharge; 5 credits per successful request."}},"anyOf":[{"required":["query"]},{"required":["place_id"]}]}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]}},"/v1/amazon":{"get":{"tags":["API"],"summary":"Amazon product or search results","description":"Amazon product search and pricing API for AI agents: JSON product details by ASIN, keyword search results, offers and bestsellers. Supports Amazon marketplace domains for ecommerce research, with titles, prices, ratings and availability when available. Price: 1-5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"asin":{"type":"string"},"title":{"type":"string"},"price":{"type":"string"},"availability_status":{"type":"string"},"average_rating":{"type":"number"},"total_reviews":{"type":"number"}},"additionalProperties":true,"description":"Amazon product JSON for resource=product: ASIN, title, displayed price, availability_status, average_rating and total_reviews. Other resource modes return their own search, offer or bestseller data."},"example":{"asin":"B07FZ8S74R","title":"Echo Dot smart speaker","price":"$49.99","availability_status":"In Stock","average_rating":4.5,"total_reviews":1234}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":{"search":1,"product":1,"reviews":5,"offers":5,"bestsellers":5},"x-fastaf-cost-version":"v1","operationId":"getAmazon","parameters":[{"name":"resource","in":"query","required":false,"description":"Amazon operation: search (default), product, offers or bestsellers. Reviews are not sold. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","schema":{"type":"string","enum":["search","product","offers","bestsellers"],"default":"search"}},{"name":"asin","in":"query","required":false,"description":"Amazon product identifier, usually 10 letters/digits, e.g. B07FZ8S74R. Required for product and offers; not used for search/bestsellers. No default. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","schema":{"type":"string","maxLength":8192}},{"name":"query","in":"query","required":false,"description":"Required product search text for resource=search, e.g. wireless headphones. Not valid for other resources; no default. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","schema":{"type":"string","maxLength":8192}},{"name":"domain","in":"query","required":false,"description":"Amazon domain suffix, not a hostname: com, co.uk, de, in, etc.; default com. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","schema":{"type":"string","maxLength":8192}},{"name":"country","in":"query","required":false,"description":"Two-letter marketplace/proxy country code, e.g. us, gb or de; default us. Unlike scrape.country, this has no FastAF surcharge. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","schema":{"type":"string","maxLength":8192}},{"name":"language","in":"query","required":false,"description":"Product-data language code, e.g. en, de or fr; omitted: marketplace default. Valid for search, product and bestsellers. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","schema":{"type":"string","maxLength":8192}},{"name":"postal_code","in":"query","required":false,"description":"Delivery postal/ZIP code, e.g. 10001, to localize availability and price. Valid for search/product/offers; omitted: source-default delivery location. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","schema":{"type":"string","maxLength":8192}},{"name":"page","in":"query","required":false,"description":"One-based page number, default 1. Search accepts 1-100; bestsellers accepts 1-2 (set full_list=false for a single page). Each request is billed separately. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"premium","in":"query","required":false,"description":"Use premium proxies for resource=search; true/false, default false. Not valid for product/offers/bestsellers; no FastAF surcharge. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","schema":{"type":"boolean"}},{"name":"sort_by","in":"query","required":false,"description":"Review order: helpful or recent. Reviews are currently unavailable, so requests using this option are rejected without charge; no FastAF default. No credits charged for rejected requests.","schema":{"type":"string","enum":["helpful","recent"]}},{"name":"filter_by_star","in":"query","required":false,"description":"Review rating filter: all_stars, five_star, four_star, three_star, two_star, one_star, positive or critical. Reviews unavailable; rejected without charge; no FastAF default. No credits charged for rejected requests.","schema":{"type":"string","enum":["all_stars","five_star","four_star","three_star","two_star","one_star","positive","critical"]}},{"name":"reviewer_type","in":"query","required":false,"description":"Review author filter: all_reviews or avp_only_reviews (verified purchases). Reviews unavailable; rejected without charge; no FastAF default. No credits charged for rejected requests.","schema":{"type":"string","enum":["all_reviews","avp_only_reviews"]}},{"name":"media_type","in":"query","required":false,"description":"Review attachment filter: all_contents or media_reviews_only. Reviews unavailable; rejected without charge; no FastAF default. No credits charged for rejected requests.","schema":{"type":"string","enum":["all_contents","media_reviews_only"]}},{"name":"format_type","in":"query","required":false,"description":"Review product-variant filter: all_formats or current_format. Reviews unavailable; rejected without charge; no FastAF default. No credits charged for rejected requests.","schema":{"type":"string","enum":["all_formats","current_format"]}},{"name":"url","in":"query","required":false,"description":"Full HTTP(S) Amazon reviews URL, an alternative to ASIN for reviews. Reviews are unavailable; this option is rejected without charge. No default. No credits charged for rejected requests.","schema":{"type":"string","maxLength":8192}},{"name":"category_id","in":"query","required":false,"description":"Bestseller category slug, node ID or slug/node pair, e.g. kitchen, 289668 or kitchen/289668. Omit for all departments; bestsellers only. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","schema":{"type":"string","maxLength":8192}},{"name":"type","in":"query","required":false,"description":"Ranked list for bestsellers: bestsellers (default), new_releases, movers_and_shakers, most_wished_for or most_gifted. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","schema":{"type":"string","enum":["bestsellers","new_releases","movers_and_shakers","most_wished_for","most_gifted"]}},{"name":"full_list","in":"query","required":false,"description":"For bestsellers, true returns the combined ranked list (upstream default true); false returns only page. Boolean; no FastAF surcharge for the full list. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","schema":{"type":"boolean"}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]},"post":{"tags":["API"],"summary":"Amazon product or search results","description":"Amazon product search and pricing API for AI agents: JSON product details by ASIN, keyword search results, offers and bestsellers. Supports Amazon marketplace domains for ecommerce research, with titles, prices, ratings and availability when available. Price: 1-5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"asin":{"type":"string"},"title":{"type":"string"},"price":{"type":"string"},"availability_status":{"type":"string"},"average_rating":{"type":"number"},"total_reviews":{"type":"number"}},"additionalProperties":true,"description":"Amazon product JSON for resource=product: ASIN, title, displayed price, availability_status, average_rating and total_reviews. Other resource modes return their own search, offer or bestseller data."},"example":{"asin":"B07FZ8S74R","title":"Echo Dot smart speaker","price":"$49.99","availability_status":"In Stock","average_rating":4.5,"total_reviews":1234}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":{"search":1,"product":1,"reviews":5,"offers":5,"bestsellers":5},"x-fastaf-cost-version":"v1","operationId":"postAmazon","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Amazon product lookup using resource=product, an ASIN and marketplace domain. Search, offers and bestsellers use the corresponding resource selector.","examples":[{"resource":"product","asin":"B07FZ8S74R","domain":"com"}],"additionalProperties":false,"properties":{"resource":{"type":"string","enum":["search","product","offers","bestsellers"],"default":"search","description":"Amazon operation: search (default), product, offers or bestsellers. Reviews are not sold. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","examples":["product"]},"asin":{"type":"string","maxLength":8192,"description":"Amazon product identifier, usually 10 letters/digits, e.g. B07FZ8S74R. Required for product and offers; not used for search/bestsellers. No default. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","examples":["B07FZ8S74R"]},"query":{"type":"string","maxLength":8192,"description":"Required product search text for resource=search, e.g. wireless headphones. Not valid for other resources; no default. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"domain":{"type":"string","maxLength":8192,"description":"Amazon domain suffix, not a hostname: com, co.uk, de, in, etc.; default com. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","examples":["com"]},"country":{"type":"string","maxLength":8192,"description":"Two-letter marketplace/proxy country code, e.g. us, gb or de; default us. Unlike scrape.country, this has no FastAF surcharge. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"language":{"type":"string","maxLength":8192,"description":"Product-data language code, e.g. en, de or fr; omitted: marketplace default. Valid for search, product and bestsellers. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"postal_code":{"type":"string","maxLength":8192,"description":"Delivery postal/ZIP code, e.g. 10001, to localize availability and price. Valid for search/product/offers; omitted: source-default delivery location. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"page":{"type":"integer","minimum":1,"maximum":100,"description":"One-based page number, default 1. Search accepts 1-100; bestsellers accepts 1-2 (set full_list=false for a single page). Each request is billed separately. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"premium":{"type":"boolean","description":"Use premium proxies for resource=search; true/false, default false. Not valid for product/offers/bestsellers; no FastAF surcharge. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"sort_by":{"type":"string","enum":["helpful","recent"],"description":"Review order: helpful or recent. Reviews are currently unavailable, so requests using this option are rejected without charge; no FastAF default. No credits charged for rejected requests."},"filter_by_star":{"type":"string","enum":["all_stars","five_star","four_star","three_star","two_star","one_star","positive","critical"],"description":"Review rating filter: all_stars, five_star, four_star, three_star, two_star, one_star, positive or critical. Reviews unavailable; rejected without charge; no FastAF default. No credits charged for rejected requests."},"reviewer_type":{"type":"string","enum":["all_reviews","avp_only_reviews"],"description":"Review author filter: all_reviews or avp_only_reviews (verified purchases). Reviews unavailable; rejected without charge; no FastAF default. No credits charged for rejected requests."},"media_type":{"type":"string","enum":["all_contents","media_reviews_only"],"description":"Review attachment filter: all_contents or media_reviews_only. Reviews unavailable; rejected without charge; no FastAF default. No credits charged for rejected requests."},"format_type":{"type":"string","enum":["all_formats","current_format"],"description":"Review product-variant filter: all_formats or current_format. Reviews unavailable; rejected without charge; no FastAF default. No credits charged for rejected requests."},"url":{"type":"string","maxLength":8192,"description":"Full HTTP(S) Amazon reviews URL, an alternative to ASIN for reviews. Reviews are unavailable; this option is rejected without charge. No default. No credits charged for rejected requests."},"category_id":{"type":"string","maxLength":8192,"description":"Bestseller category slug, node ID or slug/node pair, e.g. kitchen, 289668 or kitchen/289668. Omit for all departments; bestsellers only. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"type":{"type":"string","enum":["bestsellers","new_releases","movers_and_shakers","most_wished_for","most_gifted"],"description":"Ranked list for bestsellers: bestsellers (default), new_releases, movers_and_shakers, most_wished_for or most_gifted. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"full_list":{"type":"boolean","description":"For bestsellers, true returns the combined ranked list (upstream default true); false returns only page. Boolean; no FastAF surcharge for the full list. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."}},"anyOf":[{"required":["query"]},{"required":["resource","asin"],"properties":{"resource":{"const":"product"}}},{"required":["resource","asin"],"properties":{"resource":{"const":"offers"}}},{"required":["resource"],"properties":{"resource":{"const":"bestsellers"}}}]}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]}},"/v1/linkedin":{"get":{"tags":["API"],"summary":"LinkedIn profile","description":"LinkedIn public profile API for AI agents: retrieve a person by profile ID or slug for lead research and profile enrichment. Returns a JSON array with name, headline, location, public identifier and biography when available; public data only. Price: 60 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"fullName":{"type":"string"},"public_identifier":{"type":"string"},"headline":{"type":"string"},"location":{"type":"string"},"about":{"type":"string"}},"additionalProperties":true},"description":"JSON array of public LinkedIn profiles, not an object wrapper. fullName and public_identifier identify the person; headline, location and about are source-dependent."},"example":[{"fullName":"Bill Gates","public_identifier":"williamhgates","headline":"Co-chair, Gates Foundation","location":"Seattle, Washington, United States","about":"Working on global health, climate and education."}]}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":60,"x-fastaf-cost-version":"v1","operationId":"getLinkedin","parameters":[{"name":"id","in":"query","required":true,"description":"Required public LinkedIn person-profile slug from /in/<id>/, e.g. williamhgates, not a full URL. No default; public data only. No option surcharge; 60 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"type","in":"query","required":false,"description":"Profile resource selector; only profile is accepted and is the FastAF default. Company profiles are not supported here. No option surcharge; 60 credits per successful request.","schema":{"type":"string","enum":["profile"]}},{"name":"premium","in":"query","required":false,"description":"Use the premium profile retrieval option; true/false, default false. Still public data only; no additional FastAF credits. No option surcharge; 60 credits per successful request.","schema":{"type":"boolean"}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]},"post":{"tags":["API"],"summary":"LinkedIn profile","description":"LinkedIn public profile API for AI agents: retrieve a person by profile ID or slug for lead research and profile enrichment. Returns a JSON array with name, headline, location, public identifier and biography when available; public data only. Price: 60 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"fullName":{"type":"string"},"public_identifier":{"type":"string"},"headline":{"type":"string"},"location":{"type":"string"},"about":{"type":"string"}},"additionalProperties":true},"description":"JSON array of public LinkedIn profiles, not an object wrapper. fullName and public_identifier identify the person; headline, location and about are source-dependent."},"example":[{"fullName":"Bill Gates","public_identifier":"williamhgates","headline":"Co-chair, Gates Foundation","location":"Seattle, Washington, United States","about":"Working on global health, climate and education."}]}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":60,"x-fastaf-cost-version":"v1","operationId":"postLinkedin","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Public LinkedIn person lookup by id with type=profile.","examples":[{"id":"williamhgates","type":"profile"}],"additionalProperties":false,"properties":{"id":{"type":"string","maxLength":8192,"description":"Required public LinkedIn person-profile slug from /in/<id>/, e.g. williamhgates, not a full URL. No default; public data only. No option surcharge; 60 credits per successful request.","examples":["williamhgates"]},"type":{"type":"string","enum":["profile"],"description":"Profile resource selector; only profile is accepted and is the FastAF default. Company profiles are not supported here. No option surcharge; 60 credits per successful request.","examples":["profile"]},"premium":{"type":"boolean","description":"Use the premium profile retrieval option; true/false, default false. Still public data only; no additional FastAF credits. No option surcharge; 60 credits per successful request."}},"required":["id"]}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]}},"/v1/youtube":{"get":{"tags":["API"],"summary":"YouTube search or transcript","description":"YouTube transcript and video search API for AI agents: retrieve timestamped transcript segments by video ID or find videos by keyword. Returns JSON transcripts with text, start and duration, or video search results for content research and summarization. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"transcripts":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"start":{"type":"number"},"duration":{"type":"number"}},"additionalProperties":true}}},"additionalProperties":true,"description":"YouTube transcript JSON: transcripts contains text segments with start and duration in seconds. resource=search returns video_results instead."},"example":{"transcripts":[{"text":"All right, so here we are in front of the elephants.","start":0,"duration":4.5},{"text":"The cool thing about these guys is that they have really long trunks.","start":4.5,"duration":5.5}]}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":{"transcript":5,"search":5},"x-fastaf-cost-version":"v1","operationId":"getYoutube","parameters":[{"name":"resource","in":"query","required":false,"description":"YouTube operation: transcript (default) or search. With no resource or video ID, search_query or its aliases selects search. Explicit canonical parameters take precedence over aliases. No option surcharge; transcript costs 5 credits, search 5 credits per request.","schema":{"type":"string","enum":["transcript","search"],"default":"transcript"}},{"name":"v","in":"query","required":false,"description":"Required YouTube video ID for transcript, e.g. jNQXAC9IVRw, not the watch URL. ID aliases: video_id, videoId, id, videoID. URL aliases: url, link, video_url accept YouTube watch, youtu.be, shorts and embed URLs. Not valid for search; no default. No option surcharge; transcript costs 5 credits, search 5 credits per request.","schema":{"type":"string","maxLength":8192}},{"name":"search_query","in":"query","required":false,"description":"Required YouTube search text for resource=search, e.g. espresso tutorial. Aliases: q, query, search, keyword; ignored when a video ID is supplied. Without resource or a video ID, selects search. Not valid for transcript; no default. No option surcharge; transcript costs 5 credits, search 5 credits per request.","schema":{"type":"string","maxLength":8192}},{"name":"country","in":"query","required":false,"description":"Two-letter YouTube country code, e.g. us or gb; upstream default us for search/transcripts. No option surcharge; transcript costs 5 credits, search 5 credits per request.","schema":{"type":"string","maxLength":8192}},{"name":"language","in":"query","required":false,"description":"YouTube language code, e.g. en, es or de; upstream default en. For transcripts, requests the available caption language; no translation is guaranteed. No option surcharge; transcript costs 5 credits, search 5 credits per request.","schema":{"type":"string","maxLength":8192}},{"name":"sp","in":"query","required":false,"description":"YouTube search filter or continuation token copied from a search URL/previous response; search only. Omit for the first unfiltered page. Each page is a separate request. No option surcharge; transcript costs 5 credits, search 5 credits per request.","schema":{"type":"string","maxLength":8192}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]},"post":{"tags":["API"],"summary":"YouTube search or transcript","description":"YouTube transcript and video search API for AI agents: retrieve timestamped transcript segments by video ID or find videos by keyword. Returns JSON transcripts with text, start and duration, or video search results for content research and summarization. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"transcripts":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"start":{"type":"number"},"duration":{"type":"number"}},"additionalProperties":true}}},"additionalProperties":true,"description":"YouTube transcript JSON: transcripts contains text segments with start and duration in seconds. resource=search returns video_results instead."},"example":{"transcripts":[{"text":"All right, so here we are in front of the elephants.","start":0,"duration":4.5},{"text":"The cool thing about these guys is that they have really long trunks.","start":4.5,"duration":5.5}]}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":{"transcript":5,"search":5},"x-fastaf-cost-version":"v1","operationId":"postYoutube","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"YouTube transcript lookup using resource=transcript and video ID v. Video search instead requires resource=search and search_query.","examples":[{"resource":"transcript","v":"jNQXAC9IVRw","language":"en"}],"additionalProperties":false,"properties":{"resource":{"type":"string","enum":["transcript","search"],"default":"transcript","description":"YouTube operation: transcript (default) or search. With no resource or video ID, search_query or its aliases selects search. Explicit canonical parameters take precedence over aliases. No option surcharge; transcript costs 5 credits, search 5 credits per request.","examples":["transcript"]},"v":{"type":"string","maxLength":8192,"description":"Required YouTube video ID for transcript, e.g. jNQXAC9IVRw, not the watch URL. ID aliases: video_id, videoId, id, videoID. URL aliases: url, link, video_url accept YouTube watch, youtu.be, shorts and embed URLs. Not valid for search; no default. No option surcharge; transcript costs 5 credits, search 5 credits per request.","examples":["jNQXAC9IVRw"]},"search_query":{"type":"string","maxLength":8192,"description":"Required YouTube search text for resource=search, e.g. espresso tutorial. Aliases: q, query, search, keyword; ignored when a video ID is supplied. Without resource or a video ID, selects search. Not valid for transcript; no default. No option surcharge; transcript costs 5 credits, search 5 credits per request."},"country":{"type":"string","maxLength":8192,"description":"Two-letter YouTube country code, e.g. us or gb; upstream default us for search/transcripts. No option surcharge; transcript costs 5 credits, search 5 credits per request."},"language":{"type":"string","maxLength":8192,"description":"YouTube language code, e.g. en, es or de; upstream default en. For transcripts, requests the available caption language; no translation is guaranteed. No option surcharge; transcript costs 5 credits, search 5 credits per request.","examples":["en"]},"sp":{"type":"string","maxLength":8192,"description":"YouTube search filter or continuation token copied from a search URL/previous response; search only. Omit for the first unfiltered page. Each page is a separate request. No option surcharge; transcript costs 5 credits, search 5 credits per request."}},"anyOf":[{"required":["v"]},{"required":["resource","search_query"],"properties":{"resource":{"const":"search"}}}]}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]}},"/v1/scrape":{"get":{"tags":["API"],"parameters":[{"name":"async","in":"query","required":false,"description":"Return 202 with a scrape job immediately. Otherwise a scrape still running after 25 seconds returns 202. Default false; no extra credits.","schema":{"type":"boolean","default":false}},{"name":"url","in":"query","required":true,"description":"Required public HTTP(S) page URL. Zillow/eBay URLs are rejected without charge: use their dedicated endpoints. Booking defaults to rendering; Reddit uses a best-effort public feed (1 credit), ignoring rendering/proxy/wait/session/header options. Normal base cost: 1 credit; rendered Booking defaults cost 5. Other selected modes/AI can increase cost.","schema":{"type":"string","format":"uri","pattern":"^https?://"}},{"name":"dynamic","in":"query","required":false,"description":"Render JavaScript before extracting content; true/false. FastAF default false, except booking.com defaults true with wait=8000. Ignored for Reddit feeds. Base cost: 1 credit without rendering, 5 with rendering, or 25 with rendering plus premium/country; AI adds 10.","schema":{"type":"boolean"}},{"name":"js_rendering","in":"query","required":false,"description":"Alias for dynamic with identical defaults and pricing. Boolean; cannot disagree with dynamic. Ignored for Reddit feeds. Base cost: 1 credit without rendering, 5 with rendering, or 25 with rendering plus premium/country; AI adds 10.","schema":{"type":"boolean"}},{"name":"premium","in":"query","required":false,"description":"Use residential proxies; true/false, default false. Cannot combine true with challenge_mode. Ignored for Reddit feeds. Base cost with premium=true or any country: 10 credits, 25 with dynamic; AI adds 10.","schema":{"type":"boolean"}},{"name":"custom_headers","in":"query","required":false,"description":"Boolean upstream header-forwarding flag, default false; NOT a header map. FastAF does not forward caller HTTP headers, cookies or Authorization to the target, so this cannot customize them. Ignored for Reddit feeds. No additional credits; selected rendering/proxy/AI options determine the request cost.","schema":{"type":"boolean"}},{"name":"wait","in":"query","required":false,"description":"Extra browser loading delay in milliseconds, integer 0-35000, for dynamic rendering. Omitted: no explicit extra delay, except rendered booking.com defaults to 8000. Does not enable rendering; ignored for Reddit feeds. No additional credits; selected rendering/proxy/AI options determine the request cost.","schema":{"type":"integer","minimum":0,"maximum":35000}},{"name":"country","in":"query","required":false,"description":"Proxy exit country as a two-letter ISO 3166-1 code, e.g. us, gb or de. Omit for no country targeting. Selecting any country uses premium-tier pricing even if premium=false; incompatible with challenge_mode. Ignored for Reddit feeds. Base cost with premium=true or any country: 10 credits, 25 with dynamic; AI adds 10.","schema":{"type":"string","maxLength":8192}},{"name":"session_number","in":"query","required":false,"description":"Reusable proxy session identifier, e.g. 12345. Repeat it to request the same proxy IP; expires after 60 seconds of inactivity. Omit to rotate normally. Ignored for Reddit feeds; not a FastAF login session. No additional credits; selected rendering/proxy/AI options determine the request cost.","schema":{"type":"string","maxLength":8192}},{"name":"image","in":"query","required":false,"description":"Enable fetching image URLs; true/false, default false. Not a screenshot: use /screenshot for captures, or formats=images to extract page image links. No additional credits; selected rendering/proxy/AI options determine the request cost.","schema":{"type":"boolean"}},{"name":"formats","in":"query","required":false,"description":"One output format: html (default), links, markdown, summary or images. summary is AI-generated; links/images extract page URLs. Reddit supports html/markdown only. AI extraction (ai_query, ai_extract_rules or formats=summary) adds 10 credits once per request, even when combined; other formats add none.","schema":{"type":"string","enum":["html","links","markdown","summary","images"]}},{"name":"ai_query","in":"query","required":false,"description":"Natural-language extraction prompt, e.g. Return the product price and currency. Omit for no prompt-based extraction. Not supported for Reddit feeds. AI extraction (ai_query, ai_extract_rules or formats=summary) adds 10 credits once per request, even when combined; other formats add none.","schema":{"type":"string","maxLength":8192}},{"name":"ai_extract_rules","in":"query","required":false,"description":"JSON-encoded extraction instructions as a STRING, e.g. {\"price\":\"product price\",\"currency\":\"currency code\"}; not a nested JSON object. Omit for no rule-based extraction. Not supported for Reddit feeds. AI extraction (ai_query, ai_extract_rules or formats=summary) adds 10 credits once per request, even when combined; other formats add none.","schema":{"type":"string","maxLength":8192}},{"name":"type","in":"query","required":false,"description":"Non-HTML target format: image, pdf or pbf (Protocolbuffer Binary Format). Omit for normal page scraping. This selects a binary resource, not a screenshot or an output format conversion. No additional credits; selected rendering/proxy/AI options determine the request cost.","schema":{"type":"string","enum":["image","pdf","pbf"]}},{"name":"challenge_mode","in":"query","required":false,"description":"Separate rendering mode with its own browser and proxies; true/false, default false. Uses its own rendering/proxies; cannot combine with dynamic=true, premium=true or country. Ignored for Reddit feeds. When enabled: 10 base credits; AI adds 10.","schema":{"type":"boolean"}},{"name":"max_tokens","in":"query","required":false,"description":"Optional token limit, integer 1-1000000, estimated at ~4 characters per token. Changes the answer to JSON {content, truncated, estimated_tokens, max_tokens, content_type}; over the limit, content is the first max_tokens*4 characters and content_id/content_url/expires_at fetch the full page for 1 hour at no extra charge (same API key; on x402 the id alone). Omit for the unchanged raw response; binary types are never cut. Costs the same credits and x402 price as without it. No additional credits; selected rendering/proxy/AI options determine the request cost.","schema":{"type":"integer","minimum":1,"maximum":1000000}},{"name":"sample","in":"query","required":false,"description":"Set to 1 to get a fixed, illustrative example of this endpoint's output instead of a real call: the same JSON for everyone, marked {\"sample\": true, \"illustrative\": true}, ignoring every other parameter. No payment, API key or data source is involved; cached publicly for an hour and rate-limited per IP.","schema":{"type":"string","enum":["1"]}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}],"summary":"Web page scraping","description":"Scrape a public webpage for AI agents: convert a web page URL into markdown, HTML, links or images, with optional JavaScript rendering and AI extraction or summary. Supports web content retrieval for research and RAG; response format follows the requested options. Price: 1-35 prepaid credits per successful call (options determine cost). With max_tokens the answer is JSON {content, truncated, estimated_tokens, max_tokens, content_type, content_id, content_url, expires_at}; a truncated page is kept 60 minutes at content_url (GET /v1/scrape/content/{content_id} with the same API key, or GET /x402/scrape/content/{content_id} without payment for x402), never charged again.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}},"X-FastAF-Truncated":{"description":"With max_tokens: whether content was cut.","schema":{"type":"string","enum":["true","false"]}}},"content":{"text/html":{"schema":{"type":"string"}},"text/markdown":{"schema":{"type":"string"},"example":"# Example Domain\n\nThis domain is for use in documentation examples without needing permission. Avoid use in operations.\n\n[Learn more](https://iana.org/domains/example)"},"text/plain":{"schema":{"type":"string"}},"application/json":{"schema":{"type":["object","array"],"additionalProperties":true}},"image/*":{"schema":{"type":"string","format":"binary"}},"application/pdf":{"schema":{"type":"string","format":"binary"}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"202":{"description":"Scrape accepted, no final charge or x402 settlement yet. Poll Location with the same account key, or X-Scrape-Token on x402.","headers":{"Location":{"schema":{"type":"string","format":"uri"}},"Retry-After":{"schema":{"type":"integer"}},"X-Scrape-Token":{"description":"x402 only: private bearer capability for polling. Never log or share.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["job_id","status","expires_at"],"properties":{"job_id":{"type":"string"},"status":{"type":"string","enum":["pending","done","failed"]},"expires_at":{"type":"string","format":"date-time"},"status_url":{"type":"string","format":"uri"},"result":{"type":"string"},"content_type":{"type":"string"},"error":{"type":"string"},"credits_used":{"type":"integer"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":{"default":1,"dynamic":5,"premium":10,"dynamicAndPremium":25,"challenge":10,"aiSurcharge":10},"x-fastaf-cost-version":"v1","operationId":"getScrape","x-max-tokens-response":{"type":"object","description":"Answer when max_tokens is sent. Tokens are estimated at ~4 characters per token.","required":["content","truncated","estimated_tokens","max_tokens","content_type"],"properties":{"content":{"type":"string","description":"The page, or its first max_tokens*4 characters when truncated."},"truncated":{"type":"boolean"},"estimated_tokens":{"type":"integer","minimum":0,"description":"Estimated tokens of the whole page."},"max_tokens":{"type":"integer","minimum":1},"content_type":{"type":["string","null"],"description":"Content type of the full page."},"content_id":{"type":"string","pattern":"^[0-9a-f]{64}$","description":"When truncated: id of the stored full page."},"content_url":{"type":"string","format":"uri","description":"When truncated: GET it for the full page, free, for 60 minutes (keyed: same API key; x402: no payment, the id is the proof)."},"expires_at":{"type":"string","format":"date-time"},"message":{"type":"string","description":"Present when the full page could not be stored."}}}},"post":{"tags":["API"],"parameters":[{"name":"Prefer","in":"header","schema":{"type":"string","enum":["respond-async"]}},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","maxLength":128}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}],"summary":"Web page scraping","description":"Scrape a public webpage for AI agents: convert a web page URL into markdown, HTML, links or images, with optional JavaScript rendering and AI extraction or summary. Supports web content retrieval for research and RAG; response format follows the requested options. Price: 1-35 prepaid credits per successful call (options determine cost). With max_tokens the answer is JSON {content, truncated, estimated_tokens, max_tokens, content_type, content_id, content_url, expires_at}; a truncated page is kept 60 minutes at content_url (GET /v1/scrape/content/{content_id} with the same API key, or GET /x402/scrape/content/{content_id} without payment for x402), never charged again.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}},"X-FastAF-Truncated":{"description":"With max_tokens: whether content was cut.","schema":{"type":"string","enum":["true","false"]}}},"content":{"text/html":{"schema":{"type":"string"}},"text/markdown":{"schema":{"type":"string"},"example":"# Example Domain\n\nThis domain is for use in documentation examples without needing permission. Avoid use in operations.\n\n[Learn more](https://iana.org/domains/example)"},"text/plain":{"schema":{"type":"string"}},"application/json":{"schema":{"type":["object","array"],"additionalProperties":true}},"image/*":{"schema":{"type":"string","format":"binary"}},"application/pdf":{"schema":{"type":"string","format":"binary"}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"202":{"description":"Scrape accepted, no final charge or x402 settlement yet. Poll Location with the same account key, or X-Scrape-Token on x402.","headers":{"Location":{"schema":{"type":"string","format":"uri"}},"Retry-After":{"schema":{"type":"integer"}},"X-Scrape-Token":{"description":"x402 only: private bearer capability for polling. Never log or share.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["job_id","status","expires_at"],"properties":{"job_id":{"type":"string"},"status":{"type":"string","enum":["pending","done","failed"]},"expires_at":{"type":"string","format":"date-time"},"status_url":{"type":"string","format":"uri"},"result":{"type":"string"},"content_type":{"type":"string"},"error":{"type":"string"},"credits_used":{"type":"integer"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":{"default":1,"dynamic":5,"premium":10,"dynamicAndPremium":25,"challenge":10,"aiSurcharge":10},"x-fastaf-cost-version":"v1","operationId":"postScrape","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Web page retrieval by URL with formats=markdown; dynamic and other optional rendering or extraction parameters select different modes.","examples":[{"url":"https://example.com/","formats":"markdown"}],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","description":"Required public HTTP(S) page URL. Zillow/eBay URLs are rejected without charge: use their dedicated endpoints. Booking defaults to rendering; Reddit uses a best-effort public feed (1 credit), ignoring rendering/proxy/wait/session/header options. Normal base cost: 1 credit; rendered Booking defaults cost 5. Other selected modes/AI can increase cost.","examples":["https://example.com/"]},"dynamic":{"type":"boolean","description":"Render JavaScript before extracting content; true/false. FastAF default false, except booking.com defaults true with wait=8000. Ignored for Reddit feeds. Base cost: 1 credit without rendering, 5 with rendering, or 25 with rendering plus premium/country; AI adds 10."},"js_rendering":{"type":"boolean","description":"Alias for dynamic with identical defaults and pricing. Boolean; cannot disagree with dynamic. Ignored for Reddit feeds. Base cost: 1 credit without rendering, 5 with rendering, or 25 with rendering plus premium/country; AI adds 10."},"premium":{"type":"boolean","description":"Use residential proxies; true/false, default false. Cannot combine true with challenge_mode. Ignored for Reddit feeds. Base cost with premium=true or any country: 10 credits, 25 with dynamic; AI adds 10."},"custom_headers":{"type":"boolean","description":"Boolean upstream header-forwarding flag, default false; NOT a header map. FastAF does not forward caller HTTP headers, cookies or Authorization to the target, so this cannot customize them. Ignored for Reddit feeds. No additional credits; selected rendering/proxy/AI options determine the request cost."},"wait":{"type":"integer","minimum":0,"maximum":35000,"description":"Extra browser loading delay in milliseconds, integer 0-35000, for dynamic rendering. Omitted: no explicit extra delay, except rendered booking.com defaults to 8000. Does not enable rendering; ignored for Reddit feeds. No additional credits; selected rendering/proxy/AI options determine the request cost."},"country":{"type":"string","maxLength":8192,"description":"Proxy exit country as a two-letter ISO 3166-1 code, e.g. us, gb or de. Omit for no country targeting. Selecting any country uses premium-tier pricing even if premium=false; incompatible with challenge_mode. Ignored for Reddit feeds. Base cost with premium=true or any country: 10 credits, 25 with dynamic; AI adds 10."},"session_number":{"type":"string","maxLength":8192,"description":"Reusable proxy session identifier, e.g. 12345. Repeat it to request the same proxy IP; expires after 60 seconds of inactivity. Omit to rotate normally. Ignored for Reddit feeds; not a FastAF login session. No additional credits; selected rendering/proxy/AI options determine the request cost."},"image":{"type":"boolean","description":"Enable fetching image URLs; true/false, default false. Not a screenshot: use /screenshot for captures, or formats=images to extract page image links. No additional credits; selected rendering/proxy/AI options determine the request cost."},"formats":{"type":"string","enum":["html","links","markdown","summary","images"],"description":"One output format: html (default), links, markdown, summary or images. summary is AI-generated; links/images extract page URLs. Reddit supports html/markdown only. AI extraction (ai_query, ai_extract_rules or formats=summary) adds 10 credits once per request, even when combined; other formats add none.","examples":["markdown"]},"ai_query":{"type":"string","maxLength":8192,"description":"Natural-language extraction prompt, e.g. Return the product price and currency. Omit for no prompt-based extraction. Not supported for Reddit feeds. AI extraction (ai_query, ai_extract_rules or formats=summary) adds 10 credits once per request, even when combined; other formats add none."},"ai_extract_rules":{"type":"string","maxLength":8192,"description":"JSON-encoded extraction instructions as a STRING, e.g. {\"price\":\"product price\",\"currency\":\"currency code\"}; not a nested JSON object. Omit for no rule-based extraction. Not supported for Reddit feeds. AI extraction (ai_query, ai_extract_rules or formats=summary) adds 10 credits once per request, even when combined; other formats add none."},"type":{"type":"string","enum":["image","pdf","pbf"],"description":"Non-HTML target format: image, pdf or pbf (Protocolbuffer Binary Format). Omit for normal page scraping. This selects a binary resource, not a screenshot or an output format conversion. No additional credits; selected rendering/proxy/AI options determine the request cost."},"challenge_mode":{"type":"boolean","description":"Separate rendering mode with its own browser and proxies; true/false, default false. Uses its own rendering/proxies; cannot combine with dynamic=true, premium=true or country. Ignored for Reddit feeds. When enabled: 10 base credits; AI adds 10."},"max_tokens":{"type":"integer","minimum":1,"maximum":1000000,"description":"Optional token limit, integer 1-1000000, estimated at ~4 characters per token. Changes the answer to JSON {content, truncated, estimated_tokens, max_tokens, content_type}; over the limit, content is the first max_tokens*4 characters and content_id/content_url/expires_at fetch the full page for 1 hour at no extra charge (same API key; on x402 the id alone). Omit for the unchanged raw response; binary types are never cut. Costs the same credits and x402 price as without it. No additional credits; selected rendering/proxy/AI options determine the request cost."},"async":{"type":"boolean","default":false,"description":"Return 202 with a scrape job immediately. Otherwise a scrape still running after 25 seconds returns 202. Default false; no extra credits."}},"required":["url"]}}}},"x-max-tokens-response":{"type":"object","description":"Answer when max_tokens is sent. Tokens are estimated at ~4 characters per token.","required":["content","truncated","estimated_tokens","max_tokens","content_type"],"properties":{"content":{"type":"string","description":"The page, or its first max_tokens*4 characters when truncated."},"truncated":{"type":"boolean"},"estimated_tokens":{"type":"integer","minimum":0,"description":"Estimated tokens of the whole page."},"max_tokens":{"type":"integer","minimum":1},"content_type":{"type":["string","null"],"description":"Content type of the full page."},"content_id":{"type":"string","pattern":"^[0-9a-f]{64}$","description":"When truncated: id of the stored full page."},"content_url":{"type":"string","format":"uri","description":"When truncated: GET it for the full page, free, for 60 minutes (keyed: same API key; x402: no payment, the id is the proof)."},"expires_at":{"type":"string","format":"date-time"},"message":{"type":"string","description":"Present when the full page could not be stored."}}}}},"/v1/news":{"get":{"tags":["API"],"summary":"News search results","description":"News search API for AI agents: Google News results as JSON for a topic, company or person. Returns article titles, sources, timestamps, URLs and snippets when available for news monitoring and research, with country and language targeting. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"news_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"source":{"type":"string"},"lastUpdated":{"type":"string"},"snippet":{"type":"string"},"url":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google News JSON. news_results contains title, source, lastUpdated, url and snippet when available; timestamps may be relative text."},"example":{"news_results":[{"title":"Researchers discuss responsible public-web data collection","source":"Technology Review Daily","lastUpdated":"2 hours ago","snippet":"New research examines transparency and consent in public-web data collection.","url":"https://example.com/news/public-web-data"}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"getNews","parameters":[{"name":"query","in":"query","required":true,"description":"Required Google News search text, e.g. renewable energy; supports Google search operators. No default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"results","in":"query","required":false,"description":"Maximum results retained by FastAF, integer 1-100. Omit for the full returned page. Google supplies up to 10 per page; use page for more, not a larger results value. No option surcharge; 5 credits per successful request.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"country","in":"query","required":false,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"page","in":"query","required":false,"description":"Zero-based results page: 0 is the first page, 1 the second; non-negative integer, default 0. Each page is a separate request. No option surcharge; 5 credits per successful request.","schema":{"type":"integer","minimum":0}},{"name":"domain","in":"query","required":false,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"language","in":"query","required":false,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"lr","in":"query","required":false,"description":"Document-language filter: lang_en or a pipe-separated list such as lang_en|lang_fr. Omitted: no explicit language restriction. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"uule","in":"query","required":false,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"tbs","in":"query","required":false,"description":"Google filter expression, e.g. qdr:d for the past day or qdr:w for the past week. Omitted: no explicit time/advanced filter. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"safe","in":"query","required":false,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"nfpr","in":"query","required":false,"description":"Spelling correction: string 1 excludes automatically corrected queries; 0 allows them (default 0). No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"html","in":"query","required":false,"description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 5 credits per successful request.","schema":{"type":"boolean"}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]},"post":{"tags":["API"],"summary":"News search results","description":"News search API for AI agents: Google News results as JSON for a topic, company or person. Returns article titles, sources, timestamps, URLs and snippets when available for news monitoring and research, with country and language targeting. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"news_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"source":{"type":"string"},"lastUpdated":{"type":"string"},"snippet":{"type":"string"},"url":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google News JSON. news_results contains title, source, lastUpdated, url and snippet when available; timestamps may be relative text."},"example":{"news_results":[{"title":"Researchers discuss responsible public-web data collection","source":"Technology Review Daily","lastUpdated":"2 hours ago","snippet":"New research examines transparency and consent in public-web data collection.","url":"https://example.com/news/public-web-data"}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"postNews","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Google News keyword search with country and language targeting.","examples":[{"query":"web scraping regulation","country":"us","language":"en"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required Google News search text, e.g. renewable energy; supports Google search operators. No default. No option surcharge; 5 credits per successful request.","examples":["web scraping regulation"]},"results":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum results retained by FastAF, integer 1-100. Omit for the full returned page. Google supplies up to 10 per page; use page for more, not a larger results value. No option surcharge; 5 credits per successful request."},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 5 credits per successful request.","examples":["us"]},"page":{"type":"integer","minimum":0,"description":"Zero-based results page: 0 is the first page, 1 the second; non-negative integer, default 0. Each page is a separate request. No option surcharge; 5 credits per successful request."},"domain":{"type":"string","maxLength":8192,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No option surcharge; 5 credits per successful request."},"language":{"type":"string","maxLength":8192,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 5 credits per successful request.","examples":["en"]},"lr":{"type":"string","maxLength":8192,"description":"Document-language filter: lang_en or a pipe-separated list such as lang_en|lang_fr. Omitted: no explicit language restriction. No option surcharge; 5 credits per successful request."},"uule":{"type":"string","maxLength":8192,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No option surcharge; 5 credits per successful request."},"tbs":{"type":"string","maxLength":8192,"description":"Google filter expression, e.g. qdr:d for the past day or qdr:w for the past week. Omitted: no explicit time/advanced filter. No option surcharge; 5 credits per successful request."},"safe":{"type":"string","maxLength":8192,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No option surcharge; 5 credits per successful request."},"nfpr":{"type":"string","maxLength":8192,"description":"Spelling correction: string 1 excludes automatically corrected queries; 0 allows them (default 0). No option surcharge; 5 credits per successful request."},"html":{"type":"boolean","description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 5 credits per successful request."}},"required":["query"]}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]}},"/v1/shopping":{"get":{"tags":["API"],"summary":"Shopping search results","description":"Product price comparison and shopping search API for AI agents: Google Shopping results as JSON with titles, prices, merchants, product links and ratings when available. Supports keyword search and country targeting for ecommerce research. Price: 10 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"shopping_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"price":{"type":"string"},"source":{"type":"string"},"rating":{"type":"number"},"reviews":{"type":"number"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Shopping JSON. shopping_results contains titles, displayed prices, merchant source, product links, ratings and reviews when available."},"example":{"shopping_results":[{"title":"Road running shoes, size 9","price":"$89.00","source":"City Sports","rating":4.5,"reviews":86,"link":"https://example.com/products/road-running-shoes"}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":10,"x-fastaf-cost-version":"v1","operationId":"getShopping","parameters":[{"name":"query","in":"query","required":true,"description":"Required Google Shopping search text or complete Google search URL, e.g. running shoes. No default. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"country","in":"query","required":false,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"page","in":"query","required":false,"description":"Zero-based results page: 0 is the first page, 1 the second; non-negative integer, default 0. Each page is a separate request. No option surcharge; 10 credits per successful request.","schema":{"type":"integer","minimum":0}},{"name":"domain","in":"query","required":false,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"language","in":"query","required":false,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"lr","in":"query","required":false,"description":"Document-language filter: lang_en or a pipe-separated list such as lang_en|lang_fr. Omitted: no explicit language restriction. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"shoprs","in":"query","required":false,"description":"Opaque Google Shopping filter ID copied from a Google URL; pair with query text including the selected filter label. Omit for no explicit shopping filter. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"uule","in":"query","required":false,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"tbs","in":"query","required":false,"description":"Google filter expression, e.g. qdr:d for the past day or qdr:w for the past week. Omitted: no explicit time/advanced filter. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"safe","in":"query","required":false,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"nfpr","in":"query","required":false,"description":"Spelling correction: string 1 excludes automatically corrected queries; 0 allows them (default 0). No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"html","in":"query","required":false,"description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 10 credits per successful request.","schema":{"type":"boolean"}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]},"post":{"tags":["API"],"summary":"Shopping search results","description":"Product price comparison and shopping search API for AI agents: Google Shopping results as JSON with titles, prices, merchants, product links and ratings when available. Supports keyword search and country targeting for ecommerce research. Price: 10 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"shopping_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"price":{"type":"string"},"source":{"type":"string"},"rating":{"type":"number"},"reviews":{"type":"number"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Shopping JSON. shopping_results contains titles, displayed prices, merchant source, product links, ratings and reviews when available."},"example":{"shopping_results":[{"title":"Road running shoes, size 9","price":"$89.00","source":"City Sports","rating":4.5,"reviews":86,"link":"https://example.com/products/road-running-shoes"}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":10,"x-fastaf-cost-version":"v1","operationId":"postShopping","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Google Shopping keyword search with country and language targeting.","examples":[{"query":"running shoes","country":"us","language":"en"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required Google Shopping search text or complete Google search URL, e.g. running shoes. No default. No option surcharge; 10 credits per successful request.","examples":["running shoes"]},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 10 credits per successful request.","examples":["us"]},"page":{"type":"integer","minimum":0,"description":"Zero-based results page: 0 is the first page, 1 the second; non-negative integer, default 0. Each page is a separate request. No option surcharge; 10 credits per successful request."},"domain":{"type":"string","maxLength":8192,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No option surcharge; 10 credits per successful request."},"language":{"type":"string","maxLength":8192,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 10 credits per successful request.","examples":["en"]},"lr":{"type":"string","maxLength":8192,"description":"Document-language filter: lang_en or a pipe-separated list such as lang_en|lang_fr. Omitted: no explicit language restriction. No option surcharge; 10 credits per successful request."},"shoprs":{"type":"string","maxLength":8192,"description":"Opaque Google Shopping filter ID copied from a Google URL; pair with query text including the selected filter label. Omit for no explicit shopping filter. No option surcharge; 10 credits per successful request."},"uule":{"type":"string","maxLength":8192,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No option surcharge; 10 credits per successful request."},"tbs":{"type":"string","maxLength":8192,"description":"Google filter expression, e.g. qdr:d for the past day or qdr:w for the past week. Omitted: no explicit time/advanced filter. No option surcharge; 10 credits per successful request."},"safe":{"type":"string","maxLength":8192,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No option surcharge; 10 credits per successful request."},"nfpr":{"type":"string","maxLength":8192,"description":"Spelling correction: string 1 excludes automatically corrected queries; 0 allows them (default 0). No option surcharge; 10 credits per successful request."},"html":{"type":"boolean","description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 10 credits per successful request."}},"required":["query"]}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]}},"/v1/scholar":{"get":{"tags":["API"],"summary":"Scholarly search results","description":"Academic paper and citation search API for AI agents: Google Scholar results as JSON with titles, publication details, snippets, paper links and cited-by counts when available. Supports topic queries, citation lookup and year filters for literature research. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"scholar_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"displayed_link":{"type":"string"},"snippet":{"type":"string"},"inline_links":{"type":"object","properties":{"cited_by":{"type":"object","properties":{"total":{"type":"string"},"cites_id":{"type":"string"}},"additionalProperties":true}},"additionalProperties":true},"title_link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Scholar JSON. scholar_results includes title_link, displayed_link publication text, snippet and inline_links.cited_by with a textual total and cites_id when available."},"example":{"scholar_results":[{"title":"Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks","displayed_link":"P Lewis et al. - NeurIPS, 2020","snippet":"A retrieval-augmented model combines a language model with a searchable document index.","inline_links":{"cited_by":{"total":"Cited by 120","cites_id":"1234567890123456789"}},"title_link":"https://arxiv.org/abs/2005.11401"}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"getScholar","parameters":[{"name":"html","in":"query","required":false,"description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 5 credits per successful request.","schema":{"type":"boolean"}},{"name":"query","in":"query","required":false,"description":"Scholar search text, supporting author: and source:. Required unless cites or cluster is supplied. May refine cites results; cannot combine with cluster. No default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"language","in":"query","required":false,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"lr","in":"query","required":false,"description":"Document-language filter: lang_en or a pipe-separated list such as lang_en|lang_fr. Omitted: no explicit language restriction. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"cites","in":"query","required":false,"description":"Scholar article ID for a Cited by lookup, copied from a Scholar result. May combine with query to filter citing papers, but not cluster. No default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"as_ylo","in":"query","required":false,"description":"Inclusive earliest publication year as a four-digit string, e.g. 2020. Omit for no lower year bound; may combine with as_yhi. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"as_yhi","in":"query","required":false,"description":"Inclusive latest publication year as a four-digit string, e.g. 2026. Omit for no upper year bound; may combine with as_ylo. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"scisbd","in":"query","required":false,"description":"Scholar result mode: string 1 requests abstract results, 0 all results. Omitted: source-default result mode. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"cluster","in":"query","required":false,"description":"Scholar article cluster ID for an All versions lookup. Use instead of query/cites, never together; no default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"as_sdt","in":"query","required":false,"description":"Scholar search/filter codes: 0 excludes patents (default), 7 includes patents, 4 selects US case law. Court codes can follow 4, e.g. 4,33,192. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"safe","in":"query","required":false,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"filter","in":"query","required":false,"description":"Duplicate/omitted-result filtering: string 1 enables it (default); 0 includes similar and normally omitted results. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"as_vis","in":"query","required":false,"description":"Citation-only results: string 1 excludes them, 0 includes them (default 0). No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"as_rr","in":"query","required":false,"description":"Review-paper filter: string 1 returns review articles only, 0 all article types (default 0). No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"page","in":"query","required":false,"description":"Zero-based results page: 0 is the first page, 1 the second; non-negative integer, default 0. Each page is a separate request. No option surcharge; 5 credits per successful request.","schema":{"type":"integer","minimum":0}},{"name":"results","in":"query","required":false,"description":"Requested results per Scholar page, integer at least 1; omitted: source-default page size. Google may return fewer; not a count of separately billed requests. No option surcharge; 5 credits per successful request.","schema":{"type":"integer","minimum":1}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]},"post":{"tags":["API"],"summary":"Scholarly search results","description":"Academic paper and citation search API for AI agents: Google Scholar results as JSON with titles, publication details, snippets, paper links and cited-by counts when available. Supports topic queries, citation lookup and year filters for literature research. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"scholar_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"displayed_link":{"type":"string"},"snippet":{"type":"string"},"inline_links":{"type":"object","properties":{"cited_by":{"type":"object","properties":{"total":{"type":"string"},"cites_id":{"type":"string"}},"additionalProperties":true}},"additionalProperties":true},"title_link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Scholar JSON. scholar_results includes title_link, displayed_link publication text, snippet and inline_links.cited_by with a textual total and cites_id when available."},"example":{"scholar_results":[{"title":"Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks","displayed_link":"P Lewis et al. - NeurIPS, 2020","snippet":"A retrieval-augmented model combines a language model with a searchable document index.","inline_links":{"cited_by":{"total":"Cited by 120","cites_id":"1234567890123456789"}},"title_link":"https://arxiv.org/abs/2005.11401"}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"postScholar","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Academic topic search with language and publication-year filters; citation or cluster IDs can replace query.","examples":[{"query":"retrieval augmented generation","language":"en","as_ylo":"2020","as_yhi":"2026"}],"additionalProperties":false,"properties":{"html":{"type":"boolean","description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 5 credits per successful request."},"query":{"type":"string","maxLength":8192,"description":"Scholar search text, supporting author: and source:. Required unless cites or cluster is supplied. May refine cites results; cannot combine with cluster. No default. No option surcharge; 5 credits per successful request.","examples":["retrieval augmented generation"]},"language":{"type":"string","maxLength":8192,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 5 credits per successful request.","examples":["en"]},"lr":{"type":"string","maxLength":8192,"description":"Document-language filter: lang_en or a pipe-separated list such as lang_en|lang_fr. Omitted: no explicit language restriction. No option surcharge; 5 credits per successful request."},"cites":{"type":"string","maxLength":8192,"description":"Scholar article ID for a Cited by lookup, copied from a Scholar result. May combine with query to filter citing papers, but not cluster. No default. No option surcharge; 5 credits per successful request."},"as_ylo":{"type":"string","maxLength":8192,"description":"Inclusive earliest publication year as a four-digit string, e.g. 2020. Omit for no lower year bound; may combine with as_yhi. No option surcharge; 5 credits per successful request.","examples":["2020"]},"as_yhi":{"type":"string","maxLength":8192,"description":"Inclusive latest publication year as a four-digit string, e.g. 2026. Omit for no upper year bound; may combine with as_ylo. No option surcharge; 5 credits per successful request.","examples":["2026"]},"scisbd":{"type":"string","maxLength":8192,"description":"Scholar result mode: string 1 requests abstract results, 0 all results. Omitted: source-default result mode. No option surcharge; 5 credits per successful request."},"cluster":{"type":"string","maxLength":8192,"description":"Scholar article cluster ID for an All versions lookup. Use instead of query/cites, never together; no default. No option surcharge; 5 credits per successful request."},"as_sdt":{"type":"string","maxLength":8192,"description":"Scholar search/filter codes: 0 excludes patents (default), 7 includes patents, 4 selects US case law. Court codes can follow 4, e.g. 4,33,192. No option surcharge; 5 credits per successful request."},"safe":{"type":"string","maxLength":8192,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No option surcharge; 5 credits per successful request."},"filter":{"type":"string","maxLength":8192,"description":"Duplicate/omitted-result filtering: string 1 enables it (default); 0 includes similar and normally omitted results. No option surcharge; 5 credits per successful request."},"as_vis":{"type":"string","maxLength":8192,"description":"Citation-only results: string 1 excludes them, 0 includes them (default 0). No option surcharge; 5 credits per successful request."},"as_rr":{"type":"string","maxLength":8192,"description":"Review-paper filter: string 1 returns review articles only, 0 all article types (default 0). No option surcharge; 5 credits per successful request."},"page":{"type":"integer","minimum":0,"description":"Zero-based results page: 0 is the first page, 1 the second; non-negative integer, default 0. Each page is a separate request. No option surcharge; 5 credits per successful request."},"results":{"type":"integer","minimum":1,"description":"Requested results per Scholar page, integer at least 1; omitted: source-default page size. Google may return fewer; not a count of separately billed requests. No option surcharge; 5 credits per successful request."}},"anyOf":[{"required":["query"]},{"required":["cites"]},{"required":["cluster"]}]}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]}},"/v1/jobs":{"get":{"tags":["API"],"summary":"Job search results","description":"Job search API for AI agents: Google Jobs listings as JSON for a role, company or location. Returns job titles, employers, locations, posting details and application links when available for hiring research and job discovery. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"jobs_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"company_name":{"type":"string"},"location":{"type":"string"},"extensions":{"type":"array","items":{"type":"string"}},"apply_links":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Jobs JSON. jobs_results contains title, company_name, location, extensions for posting details and apply_links when available."},"example":{"jobs_results":[{"title":"Product Manager","company_name":"Northstar Analytics","location":"New York, NY","extensions":["Full-time","Posted 2 days ago"],"apply_links":[{"title":"Apply","link":"https://example.com/careers/product-manager"}]}]}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"getJobs","parameters":[{"name":"query","in":"query","required":true,"description":"Required job search text, e.g. software engineer in Austin. No default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"country","in":"query","required":false,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"language","in":"query","required":false,"description":"Google Jobs result language/locale, e.g. en_us; upstream default en_us. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"uule","in":"query","required":false,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"domain","in":"query","required":false,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"next_page_token","in":"query","required":false,"description":"Opaque continuation token from the previous jobs response. Omit for the first page; keep the original query/filters. Each page is a separate request. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"chips","in":"query","required":false,"description":"Google Jobs filter expression copied from the search page, e.g. employment_type:FULLTIME. Omitted: no extra chip filter. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"lrad","in":"query","required":false,"description":"Google Jobs radius value copied from a Google Jobs URL. Passed through as a string; upstream documents no unit or range. Omit for source-default radius. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"ltype","in":"query","required":false,"description":"Work-from-home filter token copied from a Google Jobs URL; upstream publishes no fixed value list. Omitted: no explicit work-from-home filter. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"uds","in":"query","required":false,"description":"Opaque Google results-filter token copied from a Google search URL. Omitted: no extra token filter; do not invent a token. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]},"post":{"tags":["API"],"summary":"Job search results","description":"Job search API for AI agents: Google Jobs listings as JSON for a role, company or location. Returns job titles, employers, locations, posting details and application links when available for hiring research and job discovery. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"jobs_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"company_name":{"type":"string"},"location":{"type":"string"},"extensions":{"type":"array","items":{"type":"string"}},"apply_links":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Jobs JSON. jobs_results contains title, company_name, location, extensions for posting details and apply_links when available."},"example":{"jobs_results":[{"title":"Product Manager","company_name":"Northstar Analytics","location":"New York, NY","extensions":["Full-time","Posted 2 days ago"],"apply_links":[{"title":"Apply","link":"https://example.com/careers/product-manager"}]}]}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"postJobs","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Google Jobs keyword search with country and language targeting; the query can include role and location.","examples":[{"query":"product manager jobs new york","country":"us","language":"en"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required job search text, e.g. software engineer in Austin. No default. No option surcharge; 5 credits per successful request.","examples":["product manager jobs new york"]},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 5 credits per successful request.","examples":["us"]},"language":{"type":"string","maxLength":8192,"description":"Google Jobs result language/locale, e.g. en_us; upstream default en_us. No option surcharge; 5 credits per successful request.","examples":["en"]},"uule":{"type":"string","maxLength":8192,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No option surcharge; 5 credits per successful request."},"domain":{"type":"string","maxLength":8192,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No option surcharge; 5 credits per successful request."},"next_page_token":{"type":"string","maxLength":8192,"description":"Opaque continuation token from the previous jobs response. Omit for the first page; keep the original query/filters. Each page is a separate request. No option surcharge; 5 credits per successful request."},"chips":{"type":"string","maxLength":8192,"description":"Google Jobs filter expression copied from the search page, e.g. employment_type:FULLTIME. Omitted: no extra chip filter. No option surcharge; 5 credits per successful request."},"lrad":{"type":"string","maxLength":8192,"description":"Google Jobs radius value copied from a Google Jobs URL. Passed through as a string; upstream documents no unit or range. Omit for source-default radius. No option surcharge; 5 credits per successful request."},"ltype":{"type":"string","maxLength":8192,"description":"Work-from-home filter token copied from a Google Jobs URL; upstream publishes no fixed value list. Omitted: no explicit work-from-home filter. No option surcharge; 5 credits per successful request."},"uds":{"type":"string","maxLength":8192,"description":"Opaque Google results-filter token copied from a Google search URL. Omitted: no extra token filter; do not invent a token. No option surcharge; 5 credits per successful request."}},"required":["query"]}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]}},"/v1/ai":{"get":{"tags":["API"],"summary":"AI-assisted search","description":"AI answer and web research API for AI agents: Google AI Mode responses as JSON text blocks and source references. Supports natural-language search questions with country and language targeting for research summaries; source links may be Google redirect paths. Price: 10 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"text_blocks":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"snippet":{"type":"string"},"links":{"type":"array","items":{"type":"object","properties":{"anchor":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true}},"references":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"},"source":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google AI Mode JSON. text_blocks contains answer paragraphs with snippet and links; references holds source titles and snippets. Links can be path-only Google redirects, not resolved URLs."},"example":{"text_blocks":[{"type":"paragraph","snippet":"An x402 server returns a payment request with HTTP 402; the client signs it and retries the request.","links":[{"anchor":"","link":"/goto?url=x402-overview"}]}],"references":[{"title":"x402: Internet-native payments. Opens in new tab.","link":"/goto?url=x402-overview","snippet":"An open protocol for payments over HTTP.","source":"x402"}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":10,"x-fastaf-cost-version":"v1","operationId":"getAi","parameters":[{"name":"query","in":"query","required":true,"description":"Required question/search text for Google AI Mode, e.g. How does an espresso machine work? No default. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"country","in":"query","required":false,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"language","in":"query","required":false,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"uule","in":"query","required":false,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"location","in":"query","required":false,"description":"City-level search origin, e.g. Austin, Texas, United States; omit for source-default location. Cannot be combined with uule. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"safe","in":"query","required":false,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"html","in":"query","required":false,"description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 10 credits per successful request.","schema":{"type":"boolean"}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]},"post":{"tags":["API"],"summary":"AI-assisted search","description":"AI answer and web research API for AI agents: Google AI Mode responses as JSON text blocks and source references. Supports natural-language search questions with country and language targeting for research summaries; source links may be Google redirect paths. Price: 10 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"text_blocks":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"snippet":{"type":"string"},"links":{"type":"array","items":{"type":"object","properties":{"anchor":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true}},"references":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"},"source":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google AI Mode JSON. text_blocks contains answer paragraphs with snippet and links; references holds source titles and snippets. Links can be path-only Google redirects, not resolved URLs."},"example":{"text_blocks":[{"type":"paragraph","snippet":"An x402 server returns a payment request with HTTP 402; the client signs it and retries the request.","links":[{"anchor":"","link":"/goto?url=x402-overview"}]}],"references":[{"title":"x402: Internet-native payments. Opens in new tab.","link":"/goto?url=x402-overview","snippet":"An open protocol for payments over HTTP.","source":"x402"}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":10,"x-fastaf-cost-version":"v1","operationId":"postAi","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Natural-language Google AI Mode query with country and language targeting.","examples":[{"query":"how do x402 payments work","country":"us","language":"en"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required question/search text for Google AI Mode, e.g. How does an espresso machine work? No default. No option surcharge; 10 credits per successful request.","examples":["how do x402 payments work"]},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 10 credits per successful request.","examples":["us"]},"language":{"type":"string","maxLength":8192,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 10 credits per successful request.","examples":["en"]},"uule":{"type":"string","maxLength":8192,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No option surcharge; 10 credits per successful request."},"location":{"type":"string","maxLength":8192,"description":"City-level search origin, e.g. Austin, Texas, United States; omit for source-default location. Cannot be combined with uule. No option surcharge; 10 credits per successful request."},"safe":{"type":"string","maxLength":8192,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No option surcharge; 10 credits per successful request."},"html":{"type":"boolean","description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 10 credits per successful request."}},"required":["query"]}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]}},"/v1/linkedin_jobs":{"get":{"tags":["API"],"summary":"LinkedIn public job listings","description":"LinkedIn public job listings API for AI agents: JSON array of public LinkedIn job listings with title, company, location and job link when available, by keyword with location, date, job type and experience filters. For recruiting research and job-market monitoring on LinkedIn. Public listings only, no authenticated content. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"job_position":{"type":"string"},"company_name":{"type":"string"},"job_location":{"type":"string"},"job_link":{"type":"string"}},"additionalProperties":true},"description":"JSON array of public LinkedIn job listings with title, company, location and job link when available. Public listings only, no authenticated content."},"example":[{"job_position":"Python Developer","company_name":"Example Inc.","job_location":"London","job_link":"https://www.linkedin.com/jobs/view/1234567890/"}]}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"getLinkedin_jobs","parameters":[{"name":"field","in":"query","required":true,"description":"Required job title or company keyword, e.g. \"Python developer\"; no default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"geoid","in":"query","required":false,"description":"LinkedIn numeric location ID as a string, copied from a LinkedIn jobs URL (geoId=...); default \"92000000\" (worldwide). No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"location","in":"query","required":false,"description":"Location text, e.g. \"London\" or \"Berlin, Germany\"; omit for worldwide jobs. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"page","in":"query","required":false,"description":"One-based result page, integer at least 1, e.g. 2; default 1. No option surcharge; 5 credits per successful request.","schema":{"type":"integer","minimum":1}},{"name":"sort_by","in":"query","required":false,"description":"Posting-date filter: day, week or month, e.g. \"week\" for the past week; omitted means no date filter. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"job_type","in":"query","required":false,"description":"Employment filter: temporary, contract, volunteer, full_time or part_time, e.g. \"full_time\"; omitted means all types. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"exp_level","in":"query","required":false,"description":"Experience filter: internship, entry_level, associate, mid_senior_level or director, e.g. \"entry_level\"; omitted means all levels. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"work_type","in":"query","required":false,"description":"Work model: at_work (on site), remote or hybrid, e.g. \"remote\"; omitted means all models. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"filter_by_company","in":"query","required":false,"description":"LinkedIn numeric company ID as a string, copied from a LinkedIn company or jobs URL, e.g. \"1441\"; omitted means all companies. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]},"post":{"tags":["API"],"summary":"LinkedIn public job listings","description":"LinkedIn public job listings API for AI agents: JSON array of public LinkedIn job listings with title, company, location and job link when available, by keyword with location, date, job type and experience filters. For recruiting research and job-market monitoring on LinkedIn. Public listings only, no authenticated content. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"job_position":{"type":"string"},"company_name":{"type":"string"},"job_location":{"type":"string"},"job_link":{"type":"string"}},"additionalProperties":true},"description":"JSON array of public LinkedIn job listings with title, company, location and job link when available. Public listings only, no authenticated content."},"example":[{"job_position":"Python Developer","company_name":"Example Inc.","job_location":"London","job_link":"https://www.linkedin.com/jobs/view/1234567890/"}]}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"postLinkedin_jobs","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Required job title or company keyword, e.g. Python developer; no default.","examples":[{"field":"python"}],"additionalProperties":false,"properties":{"field":{"type":"string","maxLength":8192,"description":"Required job title or company keyword, e.g. \"Python developer\"; no default. No option surcharge; 5 credits per successful request.","examples":["python"]},"geoid":{"type":"string","maxLength":8192,"description":"LinkedIn numeric location ID as a string, copied from a LinkedIn jobs URL (geoId=...); default \"92000000\" (worldwide). No option surcharge; 5 credits per successful request."},"location":{"type":"string","maxLength":8192,"description":"Location text, e.g. \"London\" or \"Berlin, Germany\"; omit for worldwide jobs. No option surcharge; 5 credits per successful request."},"page":{"type":"integer","minimum":1,"description":"One-based result page, integer at least 1, e.g. 2; default 1. No option surcharge; 5 credits per successful request."},"sort_by":{"type":"string","maxLength":8192,"description":"Posting-date filter: day, week or month, e.g. \"week\" for the past week; omitted means no date filter. No option surcharge; 5 credits per successful request."},"job_type":{"type":"string","maxLength":8192,"description":"Employment filter: temporary, contract, volunteer, full_time or part_time, e.g. \"full_time\"; omitted means all types. No option surcharge; 5 credits per successful request."},"exp_level":{"type":"string","maxLength":8192,"description":"Experience filter: internship, entry_level, associate, mid_senior_level or director, e.g. \"entry_level\"; omitted means all levels. No option surcharge; 5 credits per successful request."},"work_type":{"type":"string","maxLength":8192,"description":"Work model: at_work (on site), remote or hybrid, e.g. \"remote\"; omitted means all models. No option surcharge; 5 credits per successful request."},"filter_by_company":{"type":"string","maxLength":8192,"description":"LinkedIn numeric company ID as a string, copied from a LinkedIn company or jobs URL, e.g. \"1441\"; omitted means all companies. No option surcharge; 5 credits per successful request."}},"required":["field"]}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]}},"/v1/patents":{"get":{"tags":["API"],"summary":"Google Patents","description":"Google Patents search API for AI agents: patent results as JSON with titles, patent IDs and publication links, with inventor, assignee, country, status and date filters. For prior-art, competitor and technology research; not full patent texts or claims. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"organic_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"patent_id":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Search Google Patents for inventions, patent titles and publication links. JSON response; source fields may vary."},"example":{"organic_results":[{"title":"Solar cell","patent_id":"US1234567B2","link":"https://patents.google.com/patent/US1234567B2/en"}]}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"getPatents","parameters":[{"name":"query","in":"query","required":true,"description":"Required patent search keywords, e.g. \"solar cell\"; no default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"page","in":"query","required":false,"description":"One-based result page, integer at least 1, e.g. 2; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"integer","minimum":1}},{"name":"num","in":"query","required":false,"description":"Results per page, integer 1-100, e.g. 20; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"sort","in":"query","required":false,"description":"Sort order: new (newest first) or old (oldest first), e.g. \"new\"; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","enum":["new","old"]}},{"name":"before","in":"query","required":false,"description":"Latest publication date included, YYYY-MM-DD, e.g. \"2025-12-31\"; must not precede after; omitted means no cutoff. No option surcharge; 5 credits per successful request.","schema":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"after","in":"query","required":false,"description":"Earliest publication date included, YYYY-MM-DD, e.g. \"2020-01-01\"; omitted means no cutoff. No option surcharge; 5 credits per successful request.","schema":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"inventor","in":"query","required":false,"description":"Inventor name filter, e.g. \"Jane Smith\"; omitted means any inventor. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"assignee","in":"query","required":false,"description":"Assignee (owner) name filter, e.g. \"Toyota\"; omitted means any assignee. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"country","in":"query","required":false,"description":"Patent office country code, e.g. \"US\", \"EP\" or \"JP\"; omitted means any country. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"language","in":"query","required":false,"description":"Patent language filter as used in Google Patents search URLs, e.g. \"ENGLISH\"; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"status","in":"query","required":false,"description":"Patent status filter as used in Google Patents search URLs, e.g. \"GRANT\" or \"APPLICATION\"; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]},"post":{"tags":["API"],"summary":"Google Patents","description":"Google Patents search API for AI agents: patent results as JSON with titles, patent IDs and publication links, with inventor, assignee, country, status and date filters. For prior-art, competitor and technology research; not full patent texts or claims. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"organic_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"patent_id":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Search Google Patents for inventions, patent titles and publication links. JSON response; source fields may vary."},"example":{"organic_results":[{"title":"Solar cell","patent_id":"US1234567B2","link":"https://patents.google.com/patent/US1234567B2/en"}]}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"postPatents","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Required patent search keywords; no default.","examples":[{"query":"solar cell"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required patent search keywords, e.g. \"solar cell\"; no default. No option surcharge; 5 credits per successful request.","examples":["solar cell"]},"page":{"type":"integer","minimum":1,"description":"One-based result page, integer at least 1, e.g. 2; omitted uses source default. No option surcharge; 5 credits per successful request."},"num":{"type":"integer","minimum":1,"maximum":100,"description":"Results per page, integer 1-100, e.g. 20; omitted uses source default. No option surcharge; 5 credits per successful request."},"sort":{"type":"string","enum":["new","old"],"description":"Sort order: new (newest first) or old (oldest first), e.g. \"new\"; omitted uses source default. No option surcharge; 5 credits per successful request."},"before":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Latest publication date included, YYYY-MM-DD, e.g. \"2025-12-31\"; must not precede after; omitted means no cutoff. No option surcharge; 5 credits per successful request."},"after":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Earliest publication date included, YYYY-MM-DD, e.g. \"2020-01-01\"; omitted means no cutoff. No option surcharge; 5 credits per successful request."},"inventor":{"type":"string","maxLength":8192,"description":"Inventor name filter, e.g. \"Jane Smith\"; omitted means any inventor. No option surcharge; 5 credits per successful request."},"assignee":{"type":"string","maxLength":8192,"description":"Assignee (owner) name filter, e.g. \"Toyota\"; omitted means any assignee. No option surcharge; 5 credits per successful request."},"country":{"type":"string","maxLength":8192,"description":"Patent office country code, e.g. \"US\", \"EP\" or \"JP\"; omitted means any country. No option surcharge; 5 credits per successful request."},"language":{"type":"string","maxLength":8192,"description":"Patent language filter as used in Google Patents search URLs, e.g. \"ENGLISH\"; omitted uses source default. No option surcharge; 5 credits per successful request."},"status":{"type":"string","maxLength":8192,"description":"Patent status filter as used in Google Patents search URLs, e.g. \"GRANT\" or \"APPLICATION\"; omitted uses source default. No option surcharge; 5 credits per successful request."}},"required":["query"]}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]}},"/v1/flights":{"get":{"tags":["API"],"summary":"Google Flights","description":"Google Flights search API for AI agents: itineraries and current fares as JSON between two airports given as IATA codes, one way or round trip. For travel planning and fare comparison; it does not book tickets. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"best_flights":{"type":"array","items":{"type":"object","properties":{"price":{"type":"number"},"flights":{"type":"array","items":{"type":"object","properties":{"departure_airport":{"type":"object","properties":{"id":{"type":"string"}},"additionalProperties":true},"arrival_airport":{"type":"object","properties":{"id":{"type":"string"}},"additionalProperties":true}},"additionalProperties":true}}},"additionalProperties":true}}},"additionalProperties":true,"description":"Search Google Flights for flight itineraries and current fares. JSON response; source fields may vary."},"example":{"best_flights":[{"price":550,"flights":[{"departure_airport":{"id":"JFK"},"arrival_airport":{"id":"LHR"}}]}]}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"getFlights","parameters":[{"name":"departure_id","in":"query","required":true,"description":"Required three-letter uppercase IATA departure airport code, e.g. \"JFK\"; no default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","pattern":"^[A-Z]{3}$"}},{"name":"arrival_id","in":"query","required":true,"description":"Required three-letter uppercase IATA arrival airport code, e.g. \"LHR\"; no default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","pattern":"^[A-Z]{3}$"}},{"name":"outbound_date","in":"query","required":true,"description":"Required outbound date in YYYY-MM-DD format, e.g. \"2027-01-15\"; no default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"return_date","in":"query","required":false,"description":"Return date in YYYY-MM-DD format, on or after outbound_date, e.g. \"2027-01-22\"; for round trips (type \"1\"); optional. No option surcharge; 5 credits per successful request.","schema":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"type","in":"query","required":false,"description":"Trip type: \"1\" round trip, \"2\" one way; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","enum":["1","2"]}},{"name":"adults","in":"query","required":false,"description":"Adult passenger count, positive integer, e.g. 2; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"integer","minimum":1}},{"name":"currency","in":"query","required":false,"description":"Three-letter uppercase currency code for prices, e.g. \"EUR\"; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","pattern":"^[A-Z]{3}$"}},{"name":"hl","in":"query","required":false,"description":"Interface language code, e.g. \"en\" or \"it\"; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"gl","in":"query","required":false,"description":"Two-letter country code that localizes fares, e.g. \"us\" or \"it\"; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"travel_class","in":"query","required":false,"description":"Cabin class: \"1\" economy, \"2\" premium economy, \"3\" business, \"4\" first; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","enum":["1","2","3","4"]}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]},"post":{"tags":["API"],"summary":"Google Flights","description":"Google Flights search API for AI agents: itineraries and current fares as JSON between two airports given as IATA codes, one way or round trip. For travel planning and fare comparison; it does not book tickets. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"best_flights":{"type":"array","items":{"type":"object","properties":{"price":{"type":"number"},"flights":{"type":"array","items":{"type":"object","properties":{"departure_airport":{"type":"object","properties":{"id":{"type":"string"}},"additionalProperties":true},"arrival_airport":{"type":"object","properties":{"id":{"type":"string"}},"additionalProperties":true}},"additionalProperties":true}}},"additionalProperties":true}}},"additionalProperties":true,"description":"Search Google Flights for flight itineraries and current fares. JSON response; source fields may vary."},"example":{"best_flights":[{"price":550,"flights":[{"departure_airport":{"id":"JFK"},"arrival_airport":{"id":"LHR"}}]}]}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"postFlights","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Required three-letter uppercase IATA departure airport code; no default. Required three-letter uppercase IATA arrival airport code; no default. Required outbound date in YYYY-MM-DD format; no default.","examples":[{"departure_id":"JFK","arrival_id":"LHR","outbound_date":"2027-01-15","type":"2"}],"additionalProperties":false,"properties":{"departure_id":{"type":"string","pattern":"^[A-Z]{3}$","description":"Required three-letter uppercase IATA departure airport code, e.g. \"JFK\"; no default. No option surcharge; 5 credits per successful request.","examples":["JFK"]},"arrival_id":{"type":"string","pattern":"^[A-Z]{3}$","description":"Required three-letter uppercase IATA arrival airport code, e.g. \"LHR\"; no default. No option surcharge; 5 credits per successful request.","examples":["LHR"]},"outbound_date":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Required outbound date in YYYY-MM-DD format, e.g. \"2027-01-15\"; no default. No option surcharge; 5 credits per successful request.","examples":["2027-01-15"]},"return_date":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Return date in YYYY-MM-DD format, on or after outbound_date, e.g. \"2027-01-22\"; for round trips (type \"1\"); optional. No option surcharge; 5 credits per successful request."},"type":{"type":"string","enum":["1","2"],"description":"Trip type: \"1\" round trip, \"2\" one way; omitted uses source default. No option surcharge; 5 credits per successful request.","examples":["2"]},"adults":{"type":"integer","minimum":1,"description":"Adult passenger count, positive integer, e.g. 2; omitted uses source default. No option surcharge; 5 credits per successful request."},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"Three-letter uppercase currency code for prices, e.g. \"EUR\"; omitted uses source default. No option surcharge; 5 credits per successful request."},"hl":{"type":"string","maxLength":8192,"description":"Interface language code, e.g. \"en\" or \"it\"; omitted uses source default. No option surcharge; 5 credits per successful request."},"gl":{"type":"string","maxLength":8192,"description":"Two-letter country code that localizes fares, e.g. \"us\" or \"it\"; omitted uses source default. No option surcharge; 5 credits per successful request."},"travel_class":{"type":"string","enum":["1","2","3","4"],"description":"Cabin class: \"1\" economy, \"2\" premium economy, \"3\" business, \"4\" first; omitted uses source default. No option surcharge; 5 credits per successful request."}},"required":["departure_id","arrival_id","outbound_date"]}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]}},"/v1/bing":{"get":{"tags":["API"],"summary":"Bing web search results","description":"Bing web search results API for AI agents: JSON object with bing_data containing ranked title, link and snippet fields, with market, safe search and location targeting. For source discovery and research when Bing results are wanted rather than Google results. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"bing_data":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"},"rank":{"type":"number"}},"additionalProperties":true}}},"additionalProperties":true,"description":"JSON object with bing_data containing ranked title, link and snippet fields."},"example":{"bing_data":[{"title":"What is an API?","link":"https://example.com/api","snippet":"An interface between applications.","rank":1}]}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"getBing","parameters":[{"name":"query","in":"query","required":true,"description":"Required web search keywords, e.g. \"what is an api\"; no default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"mkt","in":"query","required":false,"description":"Market as language-COUNTRY, e.g. \"en-US\" or \"it-IT\"; omit for source default, mutually exclusive with cc. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"cc","in":"query","required":false,"description":"Two-letter country code, e.g. \"us\" or \"it\"; omit for source default, mutually exclusive with mkt. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"first","in":"query","required":false,"description":"One-based position of the first result, integer at least 1, e.g. 11 to start at the 11th result; default 1. No option surcharge; 5 credits per successful request.","schema":{"type":"integer","minimum":1}},{"name":"count","in":"query","required":false,"description":"Requested result count, integer 1-50, e.g. 20; actual count varies, omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"integer","minimum":1,"maximum":50}},{"name":"safeSearch","in":"query","required":false,"description":"Adult-content filter: Off, Moderate or Strict, e.g. \"Strict\"; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","enum":["Off","Moderate","Strict"]}},{"name":"filters","in":"query","required":false,"description":"Opaque Bing filters copied from a Bing search URL; omitted means no explicit filter. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"lat","in":"query","required":false,"description":"GPS latitude of the search origin in decimal degrees, e.g. \"41.9028\"; send with lon; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"lon","in":"query","required":false,"description":"GPS longitude of the search origin in decimal degrees, e.g. \"12.4964\"; send with lat; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]},"post":{"tags":["API"],"summary":"Bing web search results","description":"Bing web search results API for AI agents: JSON object with bing_data containing ranked title, link and snippet fields, with market, safe search and location targeting. For source discovery and research when Bing results are wanted rather than Google results. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"bing_data":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"},"rank":{"type":"number"}},"additionalProperties":true}}},"additionalProperties":true,"description":"JSON object with bing_data containing ranked title, link and snippet fields."},"example":{"bing_data":[{"title":"What is an API?","link":"https://example.com/api","snippet":"An interface between applications.","rank":1}]}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"postBing","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Required web search keywords; no default.","examples":[{"query":"what is api"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required web search keywords, e.g. \"what is an api\"; no default. No option surcharge; 5 credits per successful request.","examples":["what is api"]},"mkt":{"type":"string","maxLength":8192,"description":"Market as language-COUNTRY, e.g. \"en-US\" or \"it-IT\"; omit for source default, mutually exclusive with cc. No option surcharge; 5 credits per successful request."},"cc":{"type":"string","maxLength":8192,"description":"Two-letter country code, e.g. \"us\" or \"it\"; omit for source default, mutually exclusive with mkt. No option surcharge; 5 credits per successful request."},"first":{"type":"integer","minimum":1,"description":"One-based position of the first result, integer at least 1, e.g. 11 to start at the 11th result; default 1. No option surcharge; 5 credits per successful request."},"count":{"type":"integer","minimum":1,"maximum":50,"description":"Requested result count, integer 1-50, e.g. 20; actual count varies, omitted uses source default. No option surcharge; 5 credits per successful request."},"safeSearch":{"type":"string","enum":["Off","Moderate","Strict"],"description":"Adult-content filter: Off, Moderate or Strict, e.g. \"Strict\"; omitted uses source default. No option surcharge; 5 credits per successful request."},"filters":{"type":"string","maxLength":8192,"description":"Opaque Bing filters copied from a Bing search URL; omitted means no explicit filter. No option surcharge; 5 credits per successful request."},"lat":{"type":"string","maxLength":8192,"description":"GPS latitude of the search origin in decimal degrees, e.g. \"41.9028\"; send with lon; omitted uses source default. No option surcharge; 5 credits per successful request."},"lon":{"type":"string","maxLength":8192,"description":"GPS longitude of the search origin in decimal degrees, e.g. \"12.4964\"; send with lat; omitted uses source default. No option surcharge; 5 credits per successful request."}},"required":["query"]}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]}},"/v1/images":{"get":{"tags":["API"],"summary":"Google Images search results","description":"Google Images search results API for AI agents: Google Images JSON with image results, thumbnails, original image URLs, source links and dimensions when available, with size, colour, type and licence filters. For finding reference images and their source pages. Image rights remain with the source. Price: 10 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"images_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"original":{"type":"string"},"link":{"type":"string"},"original_width":{"type":"number"},"original_height":{"type":"number"},"image":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Images JSON with image results, thumbnails, original image URLs, source links and dimensions when available. Image rights remain with the source."},"example":{"images_results":[{"title":"Espresso machine","original":"https://example.com/espresso.jpg","link":"https://example.com/espresso","original_width":1200,"original_height":800,"image":"https://example.com/thumb.jpg"}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":10,"x-fastaf-cost-version":"v1","operationId":"getImages","parameters":[{"name":"query","in":"query","required":true,"description":"Required Google Images search keywords, e.g. \"espresso machine\"; no default. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"country","in":"query","required":false,"description":"Two-letter search country code, e.g. \"it\"; default us. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"language","in":"query","required":false,"description":"Result language code, e.g. \"it\"; default en. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"domain","in":"query","required":false,"description":"Google search domain, e.g. \"google.co.uk\"; default google.com. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"page","in":"query","required":false,"description":"Zero-based results page, integer at least 0, e.g. 1 for the second page; default 0. No option surcharge; 10 credits per successful request.","schema":{"type":"integer","minimum":0}},{"name":"safe","in":"query","required":false,"description":"Adult-content filter: active or off, e.g. \"active\"; default off. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"tbs","in":"query","required":false,"description":"Advanced Google Images filter expression copied from a search URL, e.g. \"qdr:w\" for the past week; omitted means no filter. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"imgar","in":"query","required":false,"description":"Aspect ratio: s (square), t (tall), w (wide), xw (panoramic), e.g. \"w\"; omitted means any. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"imgsz","in":"query","required":false,"description":"Image size such as l, m, i, vga or 2mp, e.g. \"l\" for large; omitted means any size. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"image_color","in":"query","required":false,"description":"Color filter such as bw, trans, red, blue or white, e.g. \"bw\"; omitted means any color. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"image_type","in":"query","required":false,"description":"Image type: face, photo, clipart, lineart or animated, e.g. \"photo\"; omitted means any type. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"licenses","in":"query","required":false,"description":"License filter: f, fc, fm, fmc, cl or ol, e.g. \"cl\"; omitted means any license. Verify rights with the source before reuse. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"html","in":"query","required":false,"description":"Return raw source HTML when true; default false. No option surcharge; 10 credits per successful request.","schema":{"type":"boolean"}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]},"post":{"tags":["API"],"summary":"Google Images search results","description":"Google Images search results API for AI agents: Google Images JSON with image results, thumbnails, original image URLs, source links and dimensions when available, with size, colour, type and licence filters. For finding reference images and their source pages. Image rights remain with the source. Price: 10 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"images_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"original":{"type":"string"},"link":{"type":"string"},"original_width":{"type":"number"},"original_height":{"type":"number"},"image":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Images JSON with image results, thumbnails, original image URLs, source links and dimensions when available. Image rights remain with the source."},"example":{"images_results":[{"title":"Espresso machine","original":"https://example.com/espresso.jpg","link":"https://example.com/espresso","original_width":1200,"original_height":800,"image":"https://example.com/thumb.jpg"}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":10,"x-fastaf-cost-version":"v1","operationId":"postImages","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Required Google Images search keywords; no default.","examples":[{"query":"espresso machine"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required Google Images search keywords, e.g. \"espresso machine\"; no default. No option surcharge; 10 credits per successful request.","examples":["espresso machine"]},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. \"it\"; default us. No option surcharge; 10 credits per successful request."},"language":{"type":"string","maxLength":8192,"description":"Result language code, e.g. \"it\"; default en. No option surcharge; 10 credits per successful request."},"domain":{"type":"string","maxLength":8192,"description":"Google search domain, e.g. \"google.co.uk\"; default google.com. No option surcharge; 10 credits per successful request."},"page":{"type":"integer","minimum":0,"description":"Zero-based results page, integer at least 0, e.g. 1 for the second page; default 0. No option surcharge; 10 credits per successful request."},"safe":{"type":"string","maxLength":8192,"description":"Adult-content filter: active or off, e.g. \"active\"; default off. No option surcharge; 10 credits per successful request."},"tbs":{"type":"string","maxLength":8192,"description":"Advanced Google Images filter expression copied from a search URL, e.g. \"qdr:w\" for the past week; omitted means no filter. No option surcharge; 10 credits per successful request."},"imgar":{"type":"string","maxLength":8192,"description":"Aspect ratio: s (square), t (tall), w (wide), xw (panoramic), e.g. \"w\"; omitted means any. No option surcharge; 10 credits per successful request."},"imgsz":{"type":"string","maxLength":8192,"description":"Image size such as l, m, i, vga or 2mp, e.g. \"l\" for large; omitted means any size. No option surcharge; 10 credits per successful request."},"image_color":{"type":"string","maxLength":8192,"description":"Color filter such as bw, trans, red, blue or white, e.g. \"bw\"; omitted means any color. No option surcharge; 10 credits per successful request."},"image_type":{"type":"string","maxLength":8192,"description":"Image type: face, photo, clipart, lineart or animated, e.g. \"photo\"; omitted means any type. No option surcharge; 10 credits per successful request."},"licenses":{"type":"string","maxLength":8192,"description":"License filter: f, fc, fm, fmc, cl or ol, e.g. \"cl\"; omitted means any license. Verify rights with the source before reuse. No option surcharge; 10 credits per successful request."},"html":{"type":"boolean","description":"Return raw source HTML when true; default false. No option surcharge; 10 credits per successful request."}},"required":["query"]}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]}},"/v1/reddit":{"get":{"tags":["API"],"summary":"Public Reddit feed","description":"Public Reddit feed API for AI agents: reads a public subreddit or thread URL and returns Markdown (formats=markdown) or HTML with titles, dates, links and post text. For community monitoring and discussion research. Author usernames and profile links are removed; RSS coverage can be partial; rate limits return an error without charge. Price: 1 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"text/html":{"schema":{"type":"string"}},"text/markdown":{"schema":{"type":"string"},"example":"# Python\n\n## [Weekly discussion](https://www.reddit.com/r/python/comments/abc123/weekly/)\n2026-10-27T12:00:00Z\n\nDiscuss Python projects.\n"}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":1,"x-fastaf-cost-version":"v1","operationId":"getReddit","parameters":[{"name":"url","in":"query","required":true,"description":"Required public reddit.com subreddit or thread URL, e.g. https://www.reddit.com/r/python/ or https://www.reddit.com/r/python/comments/abc123/; no default. Reads the public RSS feed only; user pages are refused. No option surcharge; 1 credits per successful request.","schema":{"type":"string","format":"uri","pattern":"^https?://"}},{"name":"formats","in":"query","required":false,"description":"Response format: html (default) or markdown. Feeds may contain fewer posts or comments than the website. No option surcharge; 1 credits per successful request.","schema":{"type":"string","enum":["html","markdown"],"default":"html"}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]},"post":{"tags":["API"],"summary":"Public Reddit feed","description":"Public Reddit feed API for AI agents: reads a public subreddit or thread URL and returns Markdown (formats=markdown) or HTML with titles, dates, links and post text. For community monitoring and discussion research. Author usernames and profile links are removed; RSS coverage can be partial; rate limits return an error without charge. Price: 1 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"text/html":{"schema":{"type":"string"}},"text/markdown":{"schema":{"type":"string"},"example":"# Python\n\n## [Weekly discussion](https://www.reddit.com/r/python/comments/abc123/weekly/)\n2026-10-27T12:00:00Z\n\nDiscuss Python projects.\n"}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":1,"x-fastaf-cost-version":"v1","operationId":"postReddit","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Required public reddit.com subreddit or thread URL, e.g. https://www.reddit.com/r/python/; no default. Reads the public RSS feed only.","examples":[{"url":"https://www.reddit.com/r/python/","formats":"markdown"}],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","description":"Required public reddit.com subreddit or thread URL, e.g. https://www.reddit.com/r/python/ or https://www.reddit.com/r/python/comments/abc123/; no default. Reads the public RSS feed only; user pages are refused. No option surcharge; 1 credits per successful request.","examples":["https://www.reddit.com/r/python/"]},"formats":{"type":"string","enum":["html","markdown"],"default":"html","description":"Response format: html (default) or markdown. Feeds may contain fewer posts or comments than the website. No option surcharge; 1 credits per successful request.","examples":["markdown"]}},"required":["url"]}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]}},"/v1/walmart":{"get":{"tags":["API"],"summary":"Walmart search results","description":"Walmart product search API for AI agents: retrieve listings from a Walmart search URL as JSON search_results containing item arrays. Includes product titles, prices, ratings, availability and seller details when available for ecommerce research. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"search_results":{"type":"array","items":{"type":"object","properties":{"item":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"current_price":{"type":"string"},"rating":{"type":"number"},"review_count":{"type":"number"},"availability_status":{"type":"string"},"seller_name":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true}}},"additionalProperties":true,"description":"Walmart JSON. search_results is an array of groups, each containing an item array with titles, current_price, rating, review_count and availability_status when available."},"example":{"search_results":[{"item":[{"title":"Wireless over-ear headphones","current_price":"$24.99","rating":4.4,"review_count":238,"availability_status":"In stock","seller_name":"Walmart.com"}]}]}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"getWalmart","parameters":[{"name":"url","in":"query","required":true,"description":"Required full HTTP(S) walmart.com search URL, e.g. https://www.walmart.com/search?q=headphones. Include search, page and filter options in that URL; no default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","format":"uri","pattern":"^https?://"}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]},"post":{"tags":["API"],"summary":"Walmart search results","description":"Walmart product search API for AI agents: retrieve listings from a Walmart search URL as JSON search_results containing item arrays. Includes product titles, prices, ratings, availability and seller details when available for ecommerce research. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"search_results":{"type":"array","items":{"type":"object","properties":{"item":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"current_price":{"type":"string"},"rating":{"type":"number"},"review_count":{"type":"number"},"availability_status":{"type":"string"},"seller_name":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true}}},"additionalProperties":true,"description":"Walmart JSON. search_results is an array of groups, each containing an item array with titles, current_price, rating, review_count and availability_status when available."},"example":{"search_results":[{"item":[{"title":"Wireless over-ear headphones","current_price":"$24.99","rating":4.4,"review_count":238,"availability_status":"In stock","seller_name":"Walmart.com"}]}]}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"postWalmart","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Walmart product search by a complete Walmart search URL containing the search query.","examples":[{"url":"https://www.walmart.com/search?q=headphones"}],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","description":"Required full HTTP(S) walmart.com search URL, e.g. https://www.walmart.com/search?q=headphones. Include search, page and filter options in that URL; no default. No option surcharge; 5 credits per successful request.","examples":["https://www.walmart.com/search?q=headphones"]}},"required":["url"]}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]}},"/v1/zillow":{"get":{"tags":["API"],"summary":"Zillow listings from a search URL","description":"Real estate and property listing search API for AI agents: Zillow search URLs return JSON zillow_data with prices, addresses, beds, baths and listing links, plus coordinates and Zestimate when available. Supports US housing research without generic page scraping. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"zillow_data":{"type":"array","items":{"type":"object","properties":{"zpid":{"type":"string"},"price":{"type":"string"},"address":{"type":"string"},"beds":{"type":"number"},"baths":{"type":"number"},"statusText":{"type":"string"},"zestimate":{"type":"number"},"latLong":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"additionalProperties":true},"detailUrl":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Zillow JSON. zillow_data contains listings with zpid, displayed price, address, beds, baths and detailUrl, plus statusText, latLong and zestimate when available."},"example":{"zillow_data":[{"zpid":"123456789","price":"$650,000","address":"123 Oak Lane, Austin, TX 78704","beds":3,"baths":2,"statusText":"House for sale","zestimate":648000,"latLong":{"latitude":30.245,"longitude":-97.765},"detailUrl":"https://www.zillow.com/homedetails/123456789_zpid/"}]}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"getZillow","parameters":[{"name":"url","in":"query","required":true,"description":"Required full HTTP(S) Zillow URL, e.g. https://www.zillow.com/homes/Austin,-TX_rb/. Short city paths such as /austin-tx/ are normalized. Aliases address, location, city, q, query, search become /homes/<encoded value>_rb/ URLs; digits-only zpid becomes /homedetails/<zpid>_zpid/. Canonical url takes precedence. No default; answers without listings are not charged. No option surcharge; 5 credits per successful request.","schema":{"type":"string","format":"uri","pattern":"^https?://"}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]},"post":{"tags":["API"],"summary":"Zillow listings from a search URL","description":"Real estate and property listing search API for AI agents: Zillow search URLs return JSON zillow_data with prices, addresses, beds, baths and listing links, plus coordinates and Zestimate when available. Supports US housing research without generic page scraping. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"zillow_data":{"type":"array","items":{"type":"object","properties":{"zpid":{"type":"string"},"price":{"type":"string"},"address":{"type":"string"},"beds":{"type":"number"},"baths":{"type":"number"},"statusText":{"type":"string"},"zestimate":{"type":"number"},"latLong":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"additionalProperties":true},"detailUrl":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Zillow JSON. zillow_data contains listings with zpid, displayed price, address, beds, baths and detailUrl, plus statusText, latLong and zestimate when available."},"example":{"zillow_data":[{"zpid":"123456789","price":"$650,000","address":"123 Oak Lane, Austin, TX 78704","beds":3,"baths":2,"statusText":"House for sale","zestimate":648000,"latLong":{"latitude":30.245,"longitude":-97.765},"detailUrl":"https://www.zillow.com/homedetails/123456789_zpid/"}]}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"postZillow","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"US property search by a complete Zillow search URL, such as the city _rb URL in the example.","examples":[{"url":"https://www.zillow.com/homes/Austin,-TX_rb/"}],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","description":"Required full HTTP(S) Zillow URL, e.g. https://www.zillow.com/homes/Austin,-TX_rb/. Short city paths such as /austin-tx/ are normalized. Aliases address, location, city, q, query, search become /homes/<encoded value>_rb/ URLs; digits-only zpid becomes /homedetails/<zpid>_zpid/. Canonical url takes precedence. No default; answers without listings are not charged. No option surcharge; 5 credits per successful request.","examples":["https://www.zillow.com/homes/Austin,-TX_rb/"]}},"required":["url"]}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]}},"/v1/ebay":{"get":{"tags":["API"],"summary":"eBay search results or one eBay item","description":"eBay product search and item data API for AI agents. eBay search or item URLs return JSON listings or product details with titles, prices, condition, shipping and links when available. Supports marketplace research and price comparison. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"search_results":{"type":"array","items":{"type":"object","properties":{"position":{"type":"number"},"itemId":{"type":"string"},"title":{"type":"string"},"condition":{"type":"string"},"price":{"type":"string"},"extracted_price":{"type":"number"},"shipping":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"eBay search JSON. search_results contains listing title, itemId, condition, price, extracted_price, shipping and link when available. Item lookups return product_results instead."},"example":{"search_results":[{"position":1,"itemId":"123456789012","title":"Mechanical keyboard with brown switches","condition":"Pre-owned","price":"$45.00","extracted_price":45,"shipping":"Free shipping","link":"https://www.ebay.com/itm/123456789012"}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"getEbay","parameters":[{"name":"url","in":"query","required":true,"description":"Required full HTTP(S) eBay search URL (/sch/...) or item URL (/itm/...) on an eBay country domain. Search/filter/pagination options go in this URL. No default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","format":"uri","pattern":"^https?://"}},{"name":"resource","in":"query","required":false,"description":"eBay operation: search or product. FastAF defaults to product for /itm/ URLs and search otherwise; both have the same price. No option surcharge; 5 credits per successful request.","schema":{"type":"string","enum":["search","product"]}},{"name":"html","in":"query","required":false,"description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 5 credits per successful request.","schema":{"type":"boolean"}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]},"post":{"tags":["API"],"summary":"eBay search results or one eBay item","description":"eBay product search and item data API for AI agents. eBay search or item URLs return JSON listings or product details with titles, prices, condition, shipping and links when available. Supports marketplace research and price comparison. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"search_results":{"type":"array","items":{"type":"object","properties":{"position":{"type":"number"},"itemId":{"type":"string"},"title":{"type":"string"},"condition":{"type":"string"},"price":{"type":"string"},"extracted_price":{"type":"number"},"shipping":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"eBay search JSON. search_results contains listing title, itemId, condition, price, extracted_price, shipping and link when available. Item lookups return product_results instead."},"example":{"search_results":[{"position":1,"itemId":"123456789012","title":"Mechanical keyboard with brown switches","condition":"Pre-owned","price":"$45.00","extracted_price":45,"shipping":"Free shipping","link":"https://www.ebay.com/itm/123456789012"}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"postEbay","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"eBay keyword search using resource=search and a search URL. Item URLs use resource=product.","examples":[{"resource":"search","url":"https://www.ebay.com/sch/i.html?_nkw=mechanical+keyboard"}],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","description":"Required full HTTP(S) eBay search URL (/sch/...) or item URL (/itm/...) on an eBay country domain. Search/filter/pagination options go in this URL. No default. No option surcharge; 5 credits per successful request.","examples":["https://www.ebay.com/sch/i.html?_nkw=mechanical+keyboard"]},"resource":{"type":"string","enum":["search","product"],"description":"eBay operation: search or product. FastAF defaults to product for /itm/ URLs and search otherwise; both have the same price. No option surcharge; 5 credits per successful request.","examples":["search"]},"html":{"type":"boolean","description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 5 credits per successful request."}},"required":["url"]}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]}},"/v1/x":{"get":{"tags":["API"],"summary":"X profile","description":"X (Twitter) public profile API for AI agents: look up a username for audience research and profile enrichment. Returns JSON with name, handle, biography, follower, following and post counts when available; public profile data, not tweet search. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"handle":{"type":"string"},"description":{"type":"string"},"followers_count":{"type":"number"},"following_count":{"type":"number"},"statuses_count":{"type":"number"}},"additionalProperties":true,"description":"Public X profile JSON with name, handle, description, followers_count, following_count and statuses_count when available."},"example":{"name":"NASA","handle":"NASA","description":"Exploring space and sharing discoveries about our universe.","followers_count":85000000,"following_count":170,"statuses_count":75000}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"getX","parameters":[{"name":"profileId","in":"query","required":true,"description":"Required public X/Twitter username, e.g. nasa, without @ or a profile URL. No default; retrieves profile data, not an arbitrary post. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]},"post":{"tags":["API"],"summary":"X profile","description":"X (Twitter) public profile API for AI agents: look up a username for audience research and profile enrichment. Returns JSON with name, handle, biography, follower, following and post counts when available; public profile data, not tweet search. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"handle":{"type":"string"},"description":{"type":"string"},"followers_count":{"type":"number"},"following_count":{"type":"number"},"statuses_count":{"type":"number"}},"additionalProperties":true,"description":"Public X profile JSON with name, handle, description, followers_count, following_count and statuses_count when available."},"example":{"name":"NASA","handle":"NASA","description":"Exploring space and sharing discoveries about our universe.","followers_count":85000000,"following_count":170,"statuses_count":75000}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"postX","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Public X (Twitter) profile lookup by profileId, without an @ prefix.","examples":[{"profileId":"nasa"}],"additionalProperties":false,"properties":{"profileId":{"type":"string","maxLength":8192,"description":"Required public X/Twitter username, e.g. nasa, without @ or a profile URL. No default; retrieves profile data, not an arbitrary post. No option surcharge; 5 credits per successful request.","examples":["nasa"]}},"required":["profileId"]}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]}},"/v1/screenshot":{"get":{"tags":["API"],"summary":"Web page screenshot","description":"Web page screenshot API for AI agents: capture a website URL as PNG, JPEG or WebP image bytes for visual inspection and page archiving. Supports full-page capture, viewport dimensions and load readiness; the discovery example is a base64-encoded PNG, not a JSON response. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"image/png":{"schema":{"type":"string","format":"binary"}},"image/jpeg":{"schema":{"type":"string","format":"binary"}},"image/webp":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"getScreenshot","parameters":[{"name":"url","in":"query","required":true,"description":"Required public HTTP(S) page URL to capture in a browser. Private/network-internal targets and login paths are refused. No default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","format":"uri","pattern":"^https?://"}},{"name":"fullPage","in":"query","required":false,"description":"Capture the entire scrollable page when true, or only the viewport when false; boolean, default viewport-only capture. No option surcharge; 5 credits per successful request.","schema":{"type":"boolean"}},{"name":"width","in":"query","required":false,"description":"Browser viewport width in CSS pixels, supplied as a positive integer string, e.g. 1280. Omitted: upstream viewport default; FastAF sets no fixed width. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"height","in":"query","required":false,"description":"Browser viewport height in CSS pixels, supplied as a positive integer string, e.g. 720. Omitted: upstream viewport default; fullPage may produce a taller image. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"wait_until","in":"query","required":false,"description":"Capture readiness: domcontentloaded (default) after DOM parsing, load after the load event, or networkidle after network activity is idle. No option surcharge; 5 credits per successful request.","schema":{"type":"string","enum":["load","domcontentloaded","networkidle"],"default":"domcontentloaded"}},{"name":"format","in":"query","required":false,"description":"Image encoding: png (default), jpg or webp. Response contains image bytes, not JSON or base64 text. No option surcharge; 5 credits per successful request.","schema":{"type":"string","enum":["png","jpg","webp"],"default":"png"}},{"name":"quality","in":"query","required":false,"description":"Image quality, integer 0-100; default 80. Applies to lossy jpg/webp encoding; PNG is lossless. No option surcharge; 5 credits per successful request.","schema":{"type":"integer","minimum":0,"maximum":100,"default":80}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]},"post":{"tags":["API"],"summary":"Web page screenshot","description":"Web page screenshot API for AI agents: capture a website URL as PNG, JPEG or WebP image bytes for visual inspection and page archiving. Supports full-page capture, viewport dimensions and load readiness; the discovery example is a base64-encoded PNG, not a JSON response. Price: 5 prepaid credits per successful call (options determine cost).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"image/png":{"schema":{"type":"string","format":"binary"}},"image/jpeg":{"schema":{"type":"string","format":"binary"}},"image/webp":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/TargetUnavailable"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":5,"x-fastaf-cost-version":"v1","operationId":"postScreenshot","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Website screenshot by URL with format=png and wait_until=load. Viewport and fullPage options are optional.","examples":[{"url":"https://example.com/","format":"png","wait_until":"load"}],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","description":"Required public HTTP(S) page URL to capture in a browser. Private/network-internal targets and login paths are refused. No default. No option surcharge; 5 credits per successful request.","examples":["https://example.com/"]},"fullPage":{"type":"boolean","description":"Capture the entire scrollable page when true, or only the viewport when false; boolean, default viewport-only capture. No option surcharge; 5 credits per successful request."},"width":{"type":"string","maxLength":8192,"description":"Browser viewport width in CSS pixels, supplied as a positive integer string, e.g. 1280. Omitted: upstream viewport default; FastAF sets no fixed width. No option surcharge; 5 credits per successful request."},"height":{"type":"string","maxLength":8192,"description":"Browser viewport height in CSS pixels, supplied as a positive integer string, e.g. 720. Omitted: upstream viewport default; fullPage may produce a taller image. No option surcharge; 5 credits per successful request."},"wait_until":{"type":"string","enum":["load","domcontentloaded","networkidle"],"default":"domcontentloaded","description":"Capture readiness: domcontentloaded (default) after DOM parsing, load after the load event, or networkidle after network activity is idle. No option surcharge; 5 credits per successful request.","examples":["load"]},"format":{"type":"string","enum":["png","jpg","webp"],"default":"png","description":"Image encoding: png (default), jpg or webp. Response contains image bytes, not JSON or base64 text. No option surcharge; 5 credits per successful request.","examples":["png"]},"quality":{"type":"integer","minimum":0,"maximum":100,"default":80,"description":"Image quality, integer 0-100; default 80. Applies to lossy jpg/webp encoding; PNG is lossless. No option surcharge; 5 credits per successful request."}},"required":["url"]}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]}},"/v1/extract":{"post":{"tags":["API"],"summary":"Structured JSON extraction from a web page","description":"Extract structured JSON from a public web page for AI agents: URL and JSON Schema in, JSON valid against it out. For specific fields as data, not page text. Optional schema fields may be missing or null; only fields listed in required are guaranteed to be present in a successful response. Optional nulls are omitted before validation. Non-matching answers are never charged. Price: 40 prepaid credits per successful call, whatever the options.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Provider response. A JSON object answer ends with request_id and receipt (see the Receipt schema); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"X-FastAF-Credits-Used":{"schema":{"type":"integer"}},"X-FastAF-Free-Credits-Used":{"description":"The part of X-FastAF-Credits-Used paid with the monthly free credits.","schema":{"type":"integer"}},"X-FastAF-Cost-Version":{"schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":["object","array"],"description":"JSON that validates against the request schema, minified. Optional schema fields may be missing or null; only fields listed in required are guaranteed to be present in a successful response. Optional nulls are omitted before validation. Answers that are not JSON, do not match the schema or exceed 64 KB return 422 extraction_failed with validation_errors and are never charged or settled."},"example":{"title":"A Light in the Attic","price":{"amount":51.77,"currency":"GBP"},"in_stock":true}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/TargetNotFound"},"409":{"description":"spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"type":"object","required":["error","spent_usd","cap_usd","requested_usd"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"spend_cap_exceeded"},"message":{"type":"string"}}},"spent_usd":{"type":"string","description":"Already spent (and held by calls in flight) in this session; 0 without a session."},"cap_usd":{"type":"string"},"requested_usd":{"type":"string","description":"List price of the refused call."},"requested_credits":{"type":"integer","minimum":0},"session":{"type":["string","null"]}}}}}},"422":{"$ref":"#/components/responses/ExtractionFailed"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/DataServiceUnavailable"}},"x-fastaf-credit-cost":40,"x-fastaf-cost-version":"v1","operationId":"postExtract","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"POST only, JSON body: a public page url and a JSON Schema (draft 2020-12 subset: at most 8 KB, 5 levels and 50 properties, local $ref only, root type object or array). render_js (alias dynamic) and premium are optional; challenge_mode is not available.","examples":[{"url":"https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html","schema":{"type":"object","required":["title","price","in_stock"],"properties":{"title":{"type":"string"},"price":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string"}}},"in_stock":{"type":"boolean"}}}}],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","maxLength":8192,"description":"Required public HTTP(S) page URL, at most 8192 characters. Same rules as scrape: private targets and login paths are refused, Zillow/eBay point to their endpoints, Booking is rendered; Reddit and Amazon pages are refused. Nothing is charged for a refused URL. No option surcharge; 40 credits per successful request.","examples":["https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html"]},"schema":{"type":"object","additionalProperties":true,"description":"Required JSON Schema object (draft 2020-12 subset) describing the JSON to return. Root type object or array; at most 8 KB without whitespace, 5 levels deep (root included) and 50 properties in total; local $ref (#/$defs/...) only, no recursion. Keywords: type, properties, required, additionalProperties, items, prefixItems, enum, const, anyOf, oneOf, allOf, not, $defs, format, pattern, numeric and length bounds, and annotations. An invalid schema returns 400 before anything is charged. No option surcharge; 40 credits per successful request.","examples":[{"type":"object","required":["title","price","in_stock"],"properties":{"title":{"type":"string"},"price":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string"}}},"in_stock":{"type":"boolean"}}}]},"render_js":{"type":"boolean","description":"Render JavaScript before extracting; true/false, default false (booking.com defaults true). Same price. No option surcharge; 40 credits per successful request."},"dynamic":{"type":"boolean","description":"Alias for render_js; cannot disagree with it. Same price. No option surcharge; 40 credits per successful request."},"premium":{"type":"boolean","description":"Use residential proxies; true/false, default false. Same price. No option surcharge; 40 credits per successful request."}},"required":["url","schema"]}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.50). Alone it caps this call; with X-FastAF-Session it caps the session's running total. A call that would go over is refused with 409 spend_cap_exceeded before anything is reserved or charged. Credits are valued at the Starter list price, $0.0005 per credit.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}},{"name":"X-FastAF-Session","in":"header","required":false,"description":"Optional session id (1-128 letters, digits, '.', '_', ':' or '-') for a cumulative X-FastAF-Max-Spend: what this API account spent under the same id counts toward the cap, until 24 hours after the session's last call. Requires X-FastAF-Max-Spend.","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$","examples":["agent-run-42"]}}]}},"/v1/scrape/jobs/{job_id}":{"get":{"operationId":"pollScrapeJob","summary":"Poll a private scrape job","description":"pending: 202; done or failed: 200. Failed jobs cost nothing. Results and idempotency retained for one hour; unknown, expired and unauthorized IDs return identical 404. Use any active API key of the creating account. Successful completion settles credits exactly once.","security":[{"bearerAuth":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","pattern":"^job_[a-f0-9]{64}$"}}],"responses":{"200":{"description":"Job terminal status and result (successful results only).","headers":{"Location":{"schema":{"type":"string","format":"uri"}},"Retry-After":{"schema":{"type":"integer"}},"X-Scrape-Token":{"description":"x402 only: private bearer capability for polling. Never log or share.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["job_id","status","expires_at"],"properties":{"job_id":{"type":"string"},"status":{"type":"string","enum":["pending","done","failed"]},"expires_at":{"type":"string","format":"date-time"},"status_url":{"type":"string","format":"uri"},"result":{"type":"string"},"content_type":{"type":"string"},"error":{"type":"string"},"credits_used":{"type":"integer"}}}}}},"202":{"description":"Scrape accepted, no final charge or x402 settlement yet. Poll Location with the same account key, or X-Scrape-Token on x402.","headers":{"Location":{"schema":{"type":"string","format":"uri"}},"Retry-After":{"schema":{"type":"integer"}},"X-Scrape-Token":{"description":"x402 only: private bearer capability for polling. Never log or share.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["job_id","status","expires_at"],"properties":{"job_id":{"type":"string"},"status":{"type":"string","enum":["pending","done","failed"]},"expires_at":{"type":"string","format":"date-time"},"status_url":{"type":"string","format":"uri"},"result":{"type":"string"},"content_type":{"type":"string"},"error":{"type":"string"},"credits_used":{"type":"integer"}}}}}},"404":{"description":"Unknown, expired or unauthorized job."}}}},"/v1/usage":{"get":{"tags":["Account"],"summary":"Current account usage and credit balance","operationId":"getUsage","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Usage snapshot.","content":{"application/json":{"schema":{"type":"object","required":["balance_credits","free_credits_remaining","free_credits_monthly","free_credits_reset_at","lifetime_usage_credits","concurrency_limit","active_requests"],"properties":{"balance_credits":{"type":"integer","minimum":0,"description":"Remaining paid credits. Paid credits never expire, including previously purchased packs."},"free_credits_remaining":{"type":"integer","minimum":0,"maximum":500,"description":"Free credits left this month, spent before balance_credits. 0 until the email is verified. Not valid on x402."},"free_credits_monthly":{"type":"integer","enum":[0,500],"description":"Monthly free credits: 500 once the email is verified, else 0."},"free_credits_reset_at":{"type":["string","null"],"format":"date-time","description":"When the free credits reset to the full monthly amount (00:00 UTC on the 1st of next month); unused free credits do not carry over. null without the free tier."},"lifetime_usage_credits":{"type":"integer","minimum":0},"concurrency_limit":{"type":"integer","minimum":1},"active_requests":{"type":"integer","minimum":0}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/TooManyRequests"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/v1/requests":{"get":{"tags":["Account"],"summary":"Recent API requests for the current account","description":"Per-request log entries from the last 30 days, newest first, with cursor pagination.","operationId":"listRequests","security":[{"bearerAuth":[]}],"parameters":[{"name":"limit","in":"query","required":false,"description":"Page size. Defaults to 50.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"before","in":"query","required":false,"description":"Cursor: return entries created strictly before this timestamp. Use next_before from the previous page.","schema":{"type":"string","format":"date-time"}},{"name":"before_id","in":"query","required":false,"description":"Cursor tiebreak: with before, also return entries at that same timestamp whose id sorts below this one. Use next_before_id from the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"Request log page, newest first.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["requests"],"properties":{"requests":{"type":"array","items":{"$ref":"#/components/schemas/RequestLogEntry"}},"next_before":{"type":"string","format":"date-time","description":"Present when more entries exist; pass it as before to fetch the next page."},"next_before_id":{"type":"string","description":"Present with next_before; pass it as before_id so entries sharing that timestamp are not skipped."}}}}}},"400":{"description":"The limit or before parameter is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/v1/usage/daily":{"get":{"tags":["Account"],"summary":"Daily usage aggregates per endpoint","description":"Credits, request counts and failures grouped by calendar day (UTC) and endpoint, for up to the last 30 days (the request log retention).","operationId":"getDailyUsage","security":[{"bearerAuth":[]}],"parameters":[{"name":"days","in":"query","required":false,"description":"Window size in days, inclusive of today, at most 30. Defaults to 30.","schema":{"type":"integer","minimum":1,"maximum":30}}],"responses":{"200":{"description":"Daily aggregates, newest day first.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["days"],"properties":{"days":{"type":"array","items":{"$ref":"#/components/schemas/UsageDay"}}}}}}},"400":{"description":"The days parameter is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/v1/keys":{"get":{"tags":["Account"],"summary":"List API keys for the current account","operationId":"listApiKeys","security":[{"bearerAuth":[]},{"sessionCookie":[]}],"responses":{"200":{"description":"API keys ordered by creation time, newest first.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["keys"],"properties":{"keys":{"type":"array","items":{"$ref":"#/components/schemas/ApiKey"}}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}},"post":{"tags":["Account"],"summary":"Create an API key for the current account","description":"At most five active keys are allowed. The full key is returned only in this response.","operationId":"createApiKey","security":[{"bearerAuth":[]},{"sessionCookie":[]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":1,"maxLength":100,"pattern":".*\\S.*","default":"default"}}}}}},"responses":{"201":{"description":"API key created. The full key is shown only once.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatedApiKey"}}}},"400":{"description":"The JSON body or key name is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"409":{"description":"The account already has five active API keys.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/v1/keys/{id}":{"delete":{"tags":["Account"],"summary":"Revoke an API key","description":"The current key and the last active key on an account cannot be revoked.","operationId":"revokeApiKey","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"API key revoked.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["revoked"],"properties":{"revoked":{"type":"boolean","const":true}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"description":"The API key does not exist on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The API key is the current key or the account's last active key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/v1/checkout":{"post":{"tags":["Account"],"summary":"Start a credit pack purchase with the API key","description":"Returns a payment link for the pack. The credits are added to the key's account when the payment is confirmed; check GET /v1/usage.","operationId":"createCheckout","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["pack"],"properties":{"pack":{"type":"string","enum":["starter","growth","scale","pro","business"]}}}}}},"responses":{"201":{"description":"Payment link.","content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/x402/topup":{"post":{"tags":["billing","credits","top-up"],"x-category":"billing","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/topup","description":"FastAF Credit Packs: Purchase a FastAF credit pack for the account authenticated by the API key. Paid credits never expire and are added only after settlement, once per payment. The starter pack adds 20000 credits for $10 USDC.","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/docs/#x402","openApiUrl":"https://api.fastaf.co/openapi-api.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{},"method":"POST","queryParams":{"pack":"starter"}},"output":{"type":"json","example":{"credited":20000,"pack":"starter","order_id":"x402_example","balance":"GET https://api.fastaf.co/v1/usage"}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/docs/#x402","openApiUrl":"https://api.fastaf.co/openapi-api.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","additionalProperties":false},"queryParams":{"type":"object","properties":{"pack":{"type":"string","enum":["starter","growth","scale","pro","business"],"description":"Credit pack to purchase for the authenticated account."}},"required":["pack"],"additionalProperties":false}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","required":["credited","pack","order_id"],"properties":{"credited":{"type":"integer","minimum":1},"pack":{"type":"string","enum":["starter","growth","scale","pro","business"]},"order_id":{"type":"string"},"balance":{"type":"string","description":"Where to read the account's updated credit balance."}}}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF Credit Packs"},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/docs/#x402","openApiUrl":"https://api.fastaf.co/openapi-api.json"}},"routeTemplate":"/x402/topup"}}},"x-output-schema":{"type":"object","required":["credited","pack","order_id"],"properties":{"credited":{"type":"integer","minimum":1},"pack":{"type":"string","enum":["starter","growth","scale","pro","business"]},"order_id":{"type":"string"},"balance":{"type":"string","description":"Where to read the account's updated credit balance."}}},"summary":"FastAF Credit Packs","description":"FastAF Credit Packs: Purchase a FastAF credit pack for the account authenticated by the API key. Paid credits never expire and are added only after settlement, once per payment. x402 v2, USDC on Base. Without PAYMENT-SIGNATURE the answer is 402 with the PAYMENT-REQUIRED challenge for the pack price; sign it and retry. The pack is a query parameter; the request body may be empty or an empty JSON object.","operationId":"x402TopUp","security":[{"bearerAuth":[]}],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"dynamic","currency":"USD","min":"10.000000","max":"799.000000"}},"parameters":[{"name":"pack","in":"query","required":true,"schema":{"type":"string","enum":["starter","growth","scale","pro","business"]},"description":"starter: $10 for 20000 credits; growth: $29 for 75000 credits; scale: $99 for 300000 credits; pro: $299 for 1000000 credits; business: $799 for 3000000 credits"}],"responses":{"200":{"description":"Settled and credited.","content":{"application/json":{"schema":{"type":"object","required":["credited","pack","order_id"],"properties":{"credited":{"type":"integer","minimum":1},"pack":{"type":"string","enum":["starter","growth","scale","pro","business"]},"order_id":{"type":"string"},"balance":{"type":"string","description":"Where to read the account's updated credit balance."}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"description":"Payment challenge: x402 v2 PAYMENT-REQUIRED header, and the same v2 PaymentRequired in the JSON body. Full input/output JSON Schemas are in extensions.bazaar. Settlement failures have an error but no accepts/challenge.","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"Base64-encoded v2 challenge, on unpaid requests."}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"oneOf":[{"type":"string"},{"type":"object"}]},"error_details":{"type":"object"},"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object","required":["scheme","network","amount","asset","payTo"],"properties":{"network":{"type":"string","pattern":"^eip155:[0-9]+$"},"amount":{"type":"string","pattern":"^[0-9]+$"}}}},"extensions":{"type":"object","properties":{"bazaar":{"type":"object","properties":{"info":{"type":"object","properties":{"input":{"type":"object","properties":{"method":{"const":"POST"},"queryParams":{"type":"object","properties":{"pack":{"type":"string","enum":["starter","growth","scale","pro","business"],"description":"Credit pack to purchase for the authenticated account."}},"required":["pack"],"additionalProperties":false}}},"output":{"type":"object","properties":{"example":{"type":"object","required":["credited","pack","order_id"],"properties":{"credited":{"type":"integer","minimum":1},"pack":{"type":"string","enum":["starter","growth","scale","pro","business"]},"order_id":{"type":"string"},"balance":{"type":"string","description":"Where to read the account's updated credit balance."}}}}}}}}}}}}}}}},"409":{"description":"This payment is already being used by another request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"description":"Settled but not credited yet; contact support with the order id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/public/signup":{"post":{"operationId":"signupWithEmail","tags":["Signup"],"summary":"Start email-confirmed free signup","description":"Get a free API key at https://fastaf.co/signup/ with an email address, terms acceptance and browser verification. No card is required. POST /public/signup automatically creates the first API key and emails it with a confirmation link. It sets a dashboard session cookie but does not return an API key in the response. Save the key from the welcome email and follow the emailed GET /public/signin/{token} link before making data calls. FastAF stores only the key hash and cannot show or resend that key. After email confirmation, create additional or replacement keys in the dashboard (POST /v1/keys with the session cookie); those keys are shown only once. Email confirmation unlocks 500 free credits every month per account, shared across all keys and all REST/MCP endpoints and used before any paid credits. They reset to 500 at 00:00 UTC on the 1st of each month and do not carry over; they are not valid on x402. Failed calls use no credits. Unverified accounts receive email_verification_required (403) before any data call or credit reservation. Signups are limited per IPv4 /24 or IPv6 /64 network per UTC day (default 3); 429 means retry after the reset. GET /v1/usage reports free_credits_remaining and free_credits_reset_at separately from balance_credits. POST /v1/signup is retired and returns 410 signup_disabled. Prepaid credit packs: Starter $10 for 20,000 credits; Growth $29 for 75,000; Scale $99 for 300,000; Pro $299 for 1,000,000; Business $799 for 3,000,000. Paid credits never expire. Agents without an inbox can use /x402/v1/{endpoint} without an account, with x402 pay-per-call from $0.003.","security":[],"externalDocs":{"url":"https://fastaf.co/signup/"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email","terms_accepted","terms_version","turnstile_token"],"properties":{"email":{"type":"string","format":"email"},"terms_accepted":{"type":"boolean","const":true},"terms_version":{"type":"string","minLength":1,"maxLength":64,"description":"Terms version from the signup page."},"turnstile_token":{"type":"string","minLength":1,"maxLength":2048,"description":"Browser verification token. Required in production; not an API key."}}}}}},"responses":{"201":{"description":"First API key and confirmation link sent by email; no API key in this response.","headers":{"Set-Cookie":{"schema":{"type":"string"},"description":"HttpOnly dashboard session cookie."}},"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"account_id":{"type":"string"},"email":{"type":"string","format":"email"},"credits":{"type":"integer","const":0},"free_credits_pending":{"type":"integer","const":500,"description":"Free credits per month, unlocked by the emailed confirmation link."}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"409":{"description":"Email already registered. Sign in at https://fastaf.co/dashboard/."},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}}}},"/public/signin/{token}":{"get":{"operationId":"confirmEmailLink","tags":["Signup"],"summary":"Follow the emailed confirmation or sign-in link","description":"Navigate using the one-time link from the email, not a guessed token. Confirms the email, unlocks the trial and sets a dashboard session. An invalid or expired link redirects with signin=expired.","security":[],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"},"description":"Secret one-time email token. Never log or share it."}],"responses":{"302":{"description":"Redirect to the dashboard.","headers":{"Location":{"schema":{"type":"string","format":"uri"}},"Set-Cookie":{"schema":{"type":"string"},"description":"HttpOnly session cookie on successful verification."}}}}}},"/v1/signup":{"post":{"operationId":"retiredAgentSignup","tags":["Signup"],"summary":"Retired agent signup (always 410)","description":"Use https://fastaf.co/signup/ for an email-confirmed key, or x402 without an account. This endpoint never creates accounts or keys.","deprecated":true,"security":[],"responses":{"410":{"description":"signup_disabled","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"signup_disabled"},"message":{"type":"string"},"signup_url":{"type":"string","format":"uri"}}}}}}}}}}},"/v1/scrape/content/{id}":{"get":{"tags":["API"],"summary":"Full content of a truncated max_tokens scrape","operationId":"getScrapeContent","description":"Returns the full page stored by a /v1/scrape call with max_tokens that came back truncated, with its original content type. Only the API key that made the call can read it; kept 60 minutes. Never charged. The x402 equivalent is GET /x402/scrape/content/{id}, without payment.","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9a-f]{64}$"},"description":"content_id from the truncated scrape answer."}],"responses":{"200":{"description":"The full page, never charged.","content":{"text/markdown":{"schema":{"type":"string"}},"text/html":{"schema":{"type":"string"}},"application/json":{}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"description":"content_not_found: unknown id, another key's id, or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/x402/v1/serp":{"get":{"operationId":"google_search_serp_get","summary":"Google Search results (SERP)","x-tool-slug":"google_search_serp","description":"Google Search results (SERP) for a query, as JSON: organic result titles, URLs, snippets and positions. Supports keyword search, country and language targeting for source discovery, fact-finding and research. Provided by Google Search results (SERP). Price: $0.003000 USDC fixed per successful call. Docs: https://fastaf.co Send query parameters, not a JSON body. The PAYMENT-REQUIRED header quotes the fixed price of this endpoint; options that cost more than it (SERP advance_search, scrape with rendering plus premium proxies or AI extraction) return 400 options_need_api_key before payment and need an API key. Sign it with an x402 v2 client and retry the same URL with PAYMENT-SIGNATURE. Invalid parameters or blocked targets return 402 when unsigned, or 400 before payment verification/settlement when signed. Only successful calls are settled.","tags":["search","google","serp","web-search"],"x-category":"search","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/serp","description":"Google Search results (SERP) for a query, as JSON: organic result titles, URLs, snippets and positions. Supports keyword search, country and language targeting for source discovery, fact-finding and research. Provided by Google Search results (SERP). Price: $0.003000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-serp-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"query":"best espresso machine for home","country":"us","language":"en"},"method":"GET"},"output":{"type":"json","example":{"search_information":{"query_displayed":"best espresso machine for home"},"organic_results":[{"position":1,"title":"Best espresso machines for home brewing","link":"https://example.com/guides/espresso-machines","snippet":"Compare compact espresso machines by pressure, grinder and milk-steaming features."}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-serp-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET"]},"queryParams":{"type":"object","description":"Keyword web search with country and language targeting; query is required.","examples":[{"query":"best espresso machine for home","country":"us","language":"en"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required Google search text; supports operators such as site:example.com and intitle:coffee. No default. No additional credits; 5 per request, or 10 with advance_search=true.","examples":["best espresso machine for home"]},"results":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum results retained by FastAF, integer 1-100. Omit for the full returned page. Google supplies up to 10 per page; use page for more, not a larger results value. No additional credits; 5 per request, or 10 with advance_search=true."},"page":{"type":"integer","minimum":0,"description":"Zero-based Google results page, integer 0-100; default 0. Each page is a separate request. No additional credits; 5 per request, or 10 with advance_search=true."},"advance_search":{"type":"boolean","description":"Include advanced Google result features/snippets when true; true/false, default false. False: 5 credits; true: 10 credits per request."},"mob_search":{"type":"boolean","description":"Request mobile rather than desktop Google results; true/false, default false. FastAF does not add a mobile surcharge. No additional credits; 5 per request, or 10 with advance_search=true."},"html":{"type":"boolean","description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No additional credits; 5 per request, or 10 with advance_search=true."},"deep_scrape":{"type":"boolean","description":"Fetch content from organic-result destination pages as well as the SERP; true/false, default false. Use with advance_search=false; no FastAF surcharge. No additional credits; 5 per request, or 10 with advance_search=true."},"domain":{"type":"string","maxLength":8192,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No additional credits; 5 per request, or 10 with advance_search=true."},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No additional credits; 5 per request, or 10 with advance_search=true.","examples":["us"]},"language":{"type":"string","maxLength":8192,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No additional credits; 5 per request, or 10 with advance_search=true.","examples":["en"]},"location":{"type":"string","maxLength":8192,"description":"City-level search origin, e.g. Austin, Texas, United States; omit for source-default location. Cannot be combined with uule. No additional credits; 5 per request, or 10 with advance_search=true."},"uule":{"type":"string","maxLength":8192,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No additional credits; 5 per request, or 10 with advance_search=true."},"cr":{"type":"string","maxLength":8192,"description":"Restrict documents by country: countryFR or countryFR|countryDE. Omitted: no explicit country restriction (unlike country, which localizes the search). No additional credits; 5 per request, or 10 with advance_search=true."},"lr":{"type":"string","maxLength":8192,"description":"Document-language filter: lang_en or a pipe-separated list such as lang_en|lang_fr. Omitted: no explicit language restriction. No additional credits; 5 per request, or 10 with advance_search=true."},"tbs":{"type":"string","maxLength":8192,"description":"Google filter expression, e.g. qdr:d for the past day or qdr:w for the past week. Omitted: no explicit time/advanced filter. No additional credits; 5 per request, or 10 with advance_search=true."},"safe":{"type":"string","maxLength":8192,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No additional credits; 5 per request, or 10 with advance_search=true."},"nfpr":{"type":"string","maxLength":8192,"description":"Spelling correction: string 1 excludes automatically corrected queries; 0 allows them (default 0). No additional credits; 5 per request, or 10 with advance_search=true."},"filter":{"type":"string","maxLength":8192,"description":"Duplicate/omitted-result filtering: string 1 enables it (default); 0 includes similar and normally omitted results. No additional credits; 5 per request, or 10 with advance_search=true."},"ludocid":{"type":"string","maxLength":8192,"description":"Google business listing CID as a decimal string, copied from a Google local result. Omitted: no specific business selected. No additional credits; 5 per request, or 10 with advance_search=true."},"lsig":{"type":"string","maxLength":8192,"description":"Opaque Google local-listing signature used with a business/knowledge-panel lookup; copy from a Google URL. No default. No additional credits; 5 per request, or 10 with advance_search=true."},"kgmid":{"type":"string","maxLength":8192,"description":"Google Knowledge Graph entity ID, e.g. /m/09c7w0; may override other search filters except page/results. No default. No additional credits; 5 per request, or 10 with advance_search=true."},"si":{"type":"string","maxLength":8192,"description":"Opaque Google cached-search/knowledge-panel tab token; may override other filters except page/results. No default. No additional credits; 5 per request, or 10 with advance_search=true."},"ibp":{"type":"string","maxLength":8192,"description":"Google layout/expansion expression, e.g. gwp;0,7 for a ludocid lookup. Omitted: standard results layout. No additional credits; 5 per request, or 10 with advance_search=true."},"uds":{"type":"string","maxLength":8192,"description":"Opaque Google results-filter token copied from a Google search URL. Omitted: no extra token filter; do not invent a token. No additional credits; 5 per request, or 10 with advance_search=true."}},"required":["query"]}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"search_information":{"type":"object","properties":{"query_displayed":{"type":"string"}},"additionalProperties":true},"organic_results":{"type":"array","items":{"type":"object","properties":{"position":{"type":"number"},"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google SERP JSON. organic_results contains ranked title, link and snippet fields; search_information describes the query. Other Google result blocks may also appear."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"Google Search results (SERP)","description":"Google Search results (SERP) for a query, as JSON: organic result titles, URLs, snippets and positions. Supports keyword search, country and language targeting for source discovery, fact-finding and research.","x-tool-slug":"google_search_serp"},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-serp-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/serp"}}},"x-output-schema":{"anyOf":[{"type":"object","properties":{"search_information":{"type":"object","properties":{"query_displayed":{"type":"string"}},"additionalProperties":true},"organic_results":{"type":"array","items":{"type":"object","properties":{"position":{"type":"number"},"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google SERP JSON. organic_results contains ranked title, link and snippet fields; search_information describes the query. Other Google result blocks may also appear."},{"type":"string"}]},"x-input-example":{"query":"best espresso machine for home","country":"us","language":"en"},"x-output-example":{"search_information":{"query_displayed":"best espresso machine for home"},"organic_results":[{"position":1,"title":"Best espresso machines for home brewing","link":"https://example.com/guides/espresso-machines","snippet":"Compare compact espresso machines by pressure, grinder and milk-steaming features."}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.003000"}},"parameters":[{"name":"query","in":"query","required":true,"description":"Required Google search text; supports operators such as site:example.com and intitle:coffee. No default. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192,"example":"best espresso machine for home"},"example":"best espresso machine for home"},{"name":"results","in":"query","required":false,"description":"Maximum results retained by FastAF, integer 1-100. Omit for the full returned page. Google supplies up to 10 per page; use page for more, not a larger results value. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"page","in":"query","required":false,"description":"Zero-based Google results page, integer 0-100; default 0. Each page is a separate request. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"integer","minimum":0}},{"name":"advance_search","in":"query","required":false,"description":"Include advanced Google result features/snippets when true; true/false, default false. False: 5 credits; true: 10 credits per request.","schema":{"type":"boolean"}},{"name":"mob_search","in":"query","required":false,"description":"Request mobile rather than desktop Google results; true/false, default false. FastAF does not add a mobile surcharge. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"boolean"}},{"name":"html","in":"query","required":false,"description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"boolean"}},{"name":"deep_scrape","in":"query","required":false,"description":"Fetch content from organic-result destination pages as well as the SERP; true/false, default false. Use with advance_search=false; no FastAF surcharge. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"boolean"}},{"name":"domain","in":"query","required":false,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"country","in":"query","required":false,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192,"example":"us"},"example":"us"},{"name":"language","in":"query","required":false,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192,"example":"en"},"example":"en"},{"name":"location","in":"query","required":false,"description":"City-level search origin, e.g. Austin, Texas, United States; omit for source-default location. Cannot be combined with uule. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"uule","in":"query","required":false,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"cr","in":"query","required":false,"description":"Restrict documents by country: countryFR or countryFR|countryDE. Omitted: no explicit country restriction (unlike country, which localizes the search). No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"lr","in":"query","required":false,"description":"Document-language filter: lang_en or a pipe-separated list such as lang_en|lang_fr. Omitted: no explicit language restriction. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"tbs","in":"query","required":false,"description":"Google filter expression, e.g. qdr:d for the past day or qdr:w for the past week. Omitted: no explicit time/advanced filter. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"safe","in":"query","required":false,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"nfpr","in":"query","required":false,"description":"Spelling correction: string 1 excludes automatically corrected queries; 0 allows them (default 0). No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"filter","in":"query","required":false,"description":"Duplicate/omitted-result filtering: string 1 enables it (default); 0 includes similar and normally omitted results. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"ludocid","in":"query","required":false,"description":"Google business listing CID as a decimal string, copied from a Google local result. Omitted: no specific business selected. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"lsig","in":"query","required":false,"description":"Opaque Google local-listing signature used with a business/knowledge-panel lookup; copy from a Google URL. No default. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"kgmid","in":"query","required":false,"description":"Google Knowledge Graph entity ID, e.g. /m/09c7w0; may override other search filters except page/results. No default. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"si","in":"query","required":false,"description":"Opaque Google cached-search/knowledge-panel tab token; may override other filters except page/results. No default. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"ibp","in":"query","required":false,"description":"Google layout/expansion expression, e.g. gwp;0,7 for a ludocid lookup. Omitted: standard results layout. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"uds","in":"query","required":false,"description":"Opaque Google results-filter token copied from a Google search URL. Omitted: no extra token filter; do not invent a token. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192}},{"name":"sample","in":"query","required":false,"description":"Set to 1 to get a fixed, illustrative example of this endpoint's output instead of a real call: the same JSON for everyone, marked {\"sample\": true, \"illustrative\": true}, ignoring every other parameter. No payment, API key or data source is involved; cached publicly for an hour and rate-limited per IP.","schema":{"type":"string","enum":["1"]}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}],"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"search_information":{"type":"object","properties":{"query_displayed":{"type":"string"}},"additionalProperties":true},"organic_results":{"type":"array","items":{"type":"object","properties":{"position":{"type":"number"},"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google SERP JSON. organic_results contains ranked title, link and snippet fields; search_information describes the query. Other Google result blocks may also appear."},"example":{"search_information":{"query_displayed":"best espresso machine for home"},"organic_results":[{"position":1,"title":"Best espresso machines for home brewing","link":"https://example.com/guides/espresso-machines","snippet":"Compare compact espresso machines by pressure, grinder and milk-steaming features."}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}}},"post":{"operationId":"google_search_serp_post","summary":"Google Search results (SERP)","x-tool-slug":"google_search_serp","description":"Google Search results (SERP) for a query, as JSON: organic result titles, URLs, snippets and positions. Supports keyword search, country and language targeting for source discovery, fact-finding and research. Provided by Google Search results (SERP). Price: $0.003000 USDC fixed per successful call. Docs: https://fastaf.co Send a JSON body. An empty unpaid probe returns 402; a paid retry requires valid input. Only successful calls settle.","tags":["search","google","serp","web-search"],"x-category":"search","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/serp","description":"Google Search results (SERP) for a query, as JSON: organic result titles, URLs, snippets and positions. Supports keyword search, country and language targeting for source discovery, fact-finding and research. Provided by Google Search results (SERP). Price: $0.003000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-serp-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"query":"best espresso machine for home","country":"us","language":"en"},"method":"POST"},"output":{"type":"json","example":{"search_information":{"query_displayed":"best espresso machine for home"},"organic_results":[{"position":1,"title":"Best espresso machines for home brewing","link":"https://example.com/guides/espresso-machines","snippet":"Compare compact espresso machines by pressure, grinder and milk-steaming features."}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-serp-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","description":"Keyword web search with country and language targeting; query is required.","examples":[{"query":"best espresso machine for home","country":"us","language":"en"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required Google search text; supports operators such as site:example.com and intitle:coffee. No default. No additional credits; 5 per request, or 10 with advance_search=true.","examples":["best espresso machine for home"]},"results":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum results retained by FastAF, integer 1-100. Omit for the full returned page. Google supplies up to 10 per page; use page for more, not a larger results value. No additional credits; 5 per request, or 10 with advance_search=true."},"page":{"type":"integer","minimum":0,"description":"Zero-based Google results page, integer 0-100; default 0. Each page is a separate request. No additional credits; 5 per request, or 10 with advance_search=true."},"advance_search":{"type":"boolean","description":"Include advanced Google result features/snippets when true; true/false, default false. False: 5 credits; true: 10 credits per request."},"mob_search":{"type":"boolean","description":"Request mobile rather than desktop Google results; true/false, default false. FastAF does not add a mobile surcharge. No additional credits; 5 per request, or 10 with advance_search=true."},"html":{"type":"boolean","description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No additional credits; 5 per request, or 10 with advance_search=true."},"deep_scrape":{"type":"boolean","description":"Fetch content from organic-result destination pages as well as the SERP; true/false, default false. Use with advance_search=false; no FastAF surcharge. No additional credits; 5 per request, or 10 with advance_search=true."},"domain":{"type":"string","maxLength":8192,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No additional credits; 5 per request, or 10 with advance_search=true."},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No additional credits; 5 per request, or 10 with advance_search=true.","examples":["us"]},"language":{"type":"string","maxLength":8192,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No additional credits; 5 per request, or 10 with advance_search=true.","examples":["en"]},"location":{"type":"string","maxLength":8192,"description":"City-level search origin, e.g. Austin, Texas, United States; omit for source-default location. Cannot be combined with uule. No additional credits; 5 per request, or 10 with advance_search=true."},"uule":{"type":"string","maxLength":8192,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No additional credits; 5 per request, or 10 with advance_search=true."},"cr":{"type":"string","maxLength":8192,"description":"Restrict documents by country: countryFR or countryFR|countryDE. Omitted: no explicit country restriction (unlike country, which localizes the search). No additional credits; 5 per request, or 10 with advance_search=true."},"lr":{"type":"string","maxLength":8192,"description":"Document-language filter: lang_en or a pipe-separated list such as lang_en|lang_fr. Omitted: no explicit language restriction. No additional credits; 5 per request, or 10 with advance_search=true."},"tbs":{"type":"string","maxLength":8192,"description":"Google filter expression, e.g. qdr:d for the past day or qdr:w for the past week. Omitted: no explicit time/advanced filter. No additional credits; 5 per request, or 10 with advance_search=true."},"safe":{"type":"string","maxLength":8192,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No additional credits; 5 per request, or 10 with advance_search=true."},"nfpr":{"type":"string","maxLength":8192,"description":"Spelling correction: string 1 excludes automatically corrected queries; 0 allows them (default 0). No additional credits; 5 per request, or 10 with advance_search=true."},"filter":{"type":"string","maxLength":8192,"description":"Duplicate/omitted-result filtering: string 1 enables it (default); 0 includes similar and normally omitted results. No additional credits; 5 per request, or 10 with advance_search=true."},"ludocid":{"type":"string","maxLength":8192,"description":"Google business listing CID as a decimal string, copied from a Google local result. Omitted: no specific business selected. No additional credits; 5 per request, or 10 with advance_search=true."},"lsig":{"type":"string","maxLength":8192,"description":"Opaque Google local-listing signature used with a business/knowledge-panel lookup; copy from a Google URL. No default. No additional credits; 5 per request, or 10 with advance_search=true."},"kgmid":{"type":"string","maxLength":8192,"description":"Google Knowledge Graph entity ID, e.g. /m/09c7w0; may override other search filters except page/results. No default. No additional credits; 5 per request, or 10 with advance_search=true."},"si":{"type":"string","maxLength":8192,"description":"Opaque Google cached-search/knowledge-panel tab token; may override other filters except page/results. No default. No additional credits; 5 per request, or 10 with advance_search=true."},"ibp":{"type":"string","maxLength":8192,"description":"Google layout/expansion expression, e.g. gwp;0,7 for a ludocid lookup. Omitted: standard results layout. No additional credits; 5 per request, or 10 with advance_search=true."},"uds":{"type":"string","maxLength":8192,"description":"Opaque Google results-filter token copied from a Google search URL. Omitted: no extra token filter; do not invent a token. No additional credits; 5 per request, or 10 with advance_search=true."}},"required":["query"]}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"search_information":{"type":"object","properties":{"query_displayed":{"type":"string"}},"additionalProperties":true},"organic_results":{"type":"array","items":{"type":"object","properties":{"position":{"type":"number"},"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google SERP JSON. organic_results contains ranked title, link and snippet fields; search_information describes the query. Other Google result blocks may also appear."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"Google Search results (SERP)","description":"Google Search results (SERP) for a query, as JSON: organic result titles, URLs, snippets and positions. Supports keyword search, country and language targeting for source discovery, fact-finding and research.","x-tool-slug":"google_search_serp"},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-serp-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/serp"}}},"x-output-schema":{"anyOf":[{"type":"object","properties":{"search_information":{"type":"object","properties":{"query_displayed":{"type":"string"}},"additionalProperties":true},"organic_results":{"type":"array","items":{"type":"object","properties":{"position":{"type":"number"},"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google SERP JSON. organic_results contains ranked title, link and snippet fields; search_information describes the query. Other Google result blocks may also appear."},{"type":"string"}]},"x-input-example":{"query":"best espresso machine for home","country":"us","language":"en"},"x-output-example":{"search_information":{"query_displayed":"best espresso machine for home"},"organic_results":[{"position":1,"title":"Best espresso machines for home brewing","link":"https://example.com/guides/espresso-machines","snippet":"Compare compact espresso machines by pressure, grinder and milk-steaming features."}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.003000"}},"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"search_information":{"type":"object","properties":{"query_displayed":{"type":"string"}},"additionalProperties":true},"organic_results":{"type":"array","items":{"type":"object","properties":{"position":{"type":"number"},"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google SERP JSON. organic_results contains ranked title, link and snippet fields; search_information describes the query. Other Google result blocks may also appear."},"example":{"search_information":{"query_displayed":"best espresso machine for home"},"organic_results":[{"position":1,"title":"Best espresso machines for home brewing","link":"https://example.com/guides/espresso-machines","snippet":"Compare compact espresso machines by pressure, grinder and milk-steaming features."}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Keyword web search with country and language targeting; query is required.","examples":[{"query":"best espresso machine for home","country":"us","language":"en"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required Google search text; supports operators such as site:example.com and intitle:coffee. No default. No additional credits; 5 per request, or 10 with advance_search=true.","examples":["best espresso machine for home"]},"results":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum results retained by FastAF, integer 1-100. Omit for the full returned page. Google supplies up to 10 per page; use page for more, not a larger results value. No additional credits; 5 per request, or 10 with advance_search=true."},"page":{"type":"integer","minimum":0,"description":"Zero-based Google results page, integer 0-100; default 0. Each page is a separate request. No additional credits; 5 per request, or 10 with advance_search=true."},"advance_search":{"type":"boolean","description":"Include advanced Google result features/snippets when true; true/false, default false. False: 5 credits; true: 10 credits per request."},"mob_search":{"type":"boolean","description":"Request mobile rather than desktop Google results; true/false, default false. FastAF does not add a mobile surcharge. No additional credits; 5 per request, or 10 with advance_search=true."},"html":{"type":"boolean","description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No additional credits; 5 per request, or 10 with advance_search=true."},"deep_scrape":{"type":"boolean","description":"Fetch content from organic-result destination pages as well as the SERP; true/false, default false. Use with advance_search=false; no FastAF surcharge. No additional credits; 5 per request, or 10 with advance_search=true."},"domain":{"type":"string","maxLength":8192,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No additional credits; 5 per request, or 10 with advance_search=true."},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No additional credits; 5 per request, or 10 with advance_search=true.","examples":["us"]},"language":{"type":"string","maxLength":8192,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No additional credits; 5 per request, or 10 with advance_search=true.","examples":["en"]},"location":{"type":"string","maxLength":8192,"description":"City-level search origin, e.g. Austin, Texas, United States; omit for source-default location. Cannot be combined with uule. No additional credits; 5 per request, or 10 with advance_search=true."},"uule":{"type":"string","maxLength":8192,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No additional credits; 5 per request, or 10 with advance_search=true."},"cr":{"type":"string","maxLength":8192,"description":"Restrict documents by country: countryFR or countryFR|countryDE. Omitted: no explicit country restriction (unlike country, which localizes the search). No additional credits; 5 per request, or 10 with advance_search=true."},"lr":{"type":"string","maxLength":8192,"description":"Document-language filter: lang_en or a pipe-separated list such as lang_en|lang_fr. Omitted: no explicit language restriction. No additional credits; 5 per request, or 10 with advance_search=true."},"tbs":{"type":"string","maxLength":8192,"description":"Google filter expression, e.g. qdr:d for the past day or qdr:w for the past week. Omitted: no explicit time/advanced filter. No additional credits; 5 per request, or 10 with advance_search=true."},"safe":{"type":"string","maxLength":8192,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No additional credits; 5 per request, or 10 with advance_search=true."},"nfpr":{"type":"string","maxLength":8192,"description":"Spelling correction: string 1 excludes automatically corrected queries; 0 allows them (default 0). No additional credits; 5 per request, or 10 with advance_search=true."},"filter":{"type":"string","maxLength":8192,"description":"Duplicate/omitted-result filtering: string 1 enables it (default); 0 includes similar and normally omitted results. No additional credits; 5 per request, or 10 with advance_search=true."},"ludocid":{"type":"string","maxLength":8192,"description":"Google business listing CID as a decimal string, copied from a Google local result. Omitted: no specific business selected. No additional credits; 5 per request, or 10 with advance_search=true."},"lsig":{"type":"string","maxLength":8192,"description":"Opaque Google local-listing signature used with a business/knowledge-panel lookup; copy from a Google URL. No default. No additional credits; 5 per request, or 10 with advance_search=true."},"kgmid":{"type":"string","maxLength":8192,"description":"Google Knowledge Graph entity ID, e.g. /m/09c7w0; may override other search filters except page/results. No default. No additional credits; 5 per request, or 10 with advance_search=true."},"si":{"type":"string","maxLength":8192,"description":"Opaque Google cached-search/knowledge-panel tab token; may override other filters except page/results. No default. No additional credits; 5 per request, or 10 with advance_search=true."},"ibp":{"type":"string","maxLength":8192,"description":"Google layout/expansion expression, e.g. gwp;0,7 for a ludocid lookup. Omitted: standard results layout. No additional credits; 5 per request, or 10 with advance_search=true."},"uds":{"type":"string","maxLength":8192,"description":"Opaque Google results-filter token copied from a Google search URL. Omitted: no extra token filter; do not invent a token. No additional credits; 5 per request, or 10 with advance_search=true."}},"required":["query"]},"example":{"query":"best espresso machine for home","country":"us","language":"en"}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}]}},"/x402/v1/maps":{"get":{"operationId":"x402GetMaps","summary":"FastAF Google Maps & Places","description":"Local business and places search API for AI agents: Google Maps results as JSON with addresses, ratings, review counts, coordinates and place IDs when available. Supports searches by query and location or place details by place_id. Provided by FastAF Google Maps & Places. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send query parameters, not a JSON body. The PAYMENT-REQUIRED header quotes the fixed price of this endpoint; options that cost more than it (SERP advance_search, scrape with rendering plus premium proxies or AI extraction) return 400 options_need_api_key before payment and need an API key. Sign it with an x402 v2 client and retry the same URL with PAYMENT-SIGNATURE. Invalid parameters or blocked targets return 402 when unsigned, or 400 before payment verification/settlement when signed. Only successful calls are settled.","tags":["maps","google","places","local"],"x-category":"maps","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/maps","description":"Local business and places search API for AI agents: Google Maps results as JSON with addresses, ratings, review counts, coordinates and place IDs when available. Supports searches by query and location or place details by place_id. Provided by FastAF Google Maps & Places. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-maps-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"query":"coffee near Times Square","ll":"@40.758,-73.9855,14z","language":"en"},"method":"GET"},"output":{"type":"json","example":{"search_results":[{"title":"Broadway Coffee","address":"1500 Broadway, New York, NY 10036","rating":4.6,"reviews":128,"gps_coordinates":{"latitude":40.7565,"longitude":-73.9869},"place_id":"ChIJmQJIxlVYwokRLgeuocVOGVU"}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-maps-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET"]},"queryParams":{"type":"object","description":"Local places search by query and map center (ll); alternatively, place_id selects a place lookup.","examples":[{"query":"coffee near Times Square","ll":"@40.758,-73.9855,14z","language":"en"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Maps search text, e.g. coffee in Rome; required unless place_id is supplied. Without location or ll, FastAF uses a place named in the query. No option surcharge; 5 credits per successful request.","examples":["coffee near Times Square"]},"location":{"type":"string","maxLength":8192,"description":"Search-centre place name, e.g. Rome, Italy (up to 200 characters). Cannot combine with ll. Omit to infer from query; unresolved or out-of-area results are not charged. No option surcharge; 5 credits per successful request."},"ll":{"type":"string","maxLength":8192,"description":"Search centre as @latitude,longitude,zoom, e.g. @41.9028,12.4964,13z (coordinates in degrees; zoom 3z-30z; map height in metres also supported upstream). Needed for pagination. Cannot combine with location; omitted: infer from query/location. No option surcharge; 5 credits per successful request.","examples":["@40.758,-73.9855,14z"]},"domain":{"type":"string","maxLength":8192,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No option surcharge; 5 credits per successful request."},"language":{"type":"string","maxLength":8192,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 5 credits per successful request.","examples":["en"]},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 5 credits per successful request."},"data":{"type":"string","maxLength":8192,"description":"Opaque data fragment copied from a Google Maps URL, e.g. !4m5!3m4!1s<id>!8m2!3d<lat>!4d<lon>. Used with type=place; unnecessary with place_id. No default. No option surcharge; 5 credits per successful request."},"place_id":{"type":"string","maxLength":8192,"description":"Google Maps place identifier, e.g. ChIJN1t_tDeuEmsRUsoyG83frY4, for one place's details. Required if query is omitted; no default. No option surcharge; 5 credits per successful request."},"type":{"type":"string","enum":["search","place"],"description":"Maps operation: search for query results or place for details using data. Omit for query search or automatic place_id lookup. No option surcharge; 5 credits per successful request."},"page":{"type":"integer","minimum":0,"description":"Maps result offset, integer 0-100: 0 first page, 20 second, 40 third. Default 0; supply ll for pagination. Each page is a separate request. No option surcharge; 5 credits per successful request."}},"anyOf":[{"required":["query"]},{"required":["place_id"]}]}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"search_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"address":{"type":"string"},"rating":{"type":"number"},"reviews":{"type":"number"},"gps_coordinates":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"additionalProperties":true},"place_id":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Maps JSON. search_results contains places with title, address, rating, reviews, place_id and gps_coordinates when available."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF Google Maps & Places","description":"Local business and places search API for AI agents: Google Maps results as JSON with addresses, ratings, review counts, coordinates and place IDs when available. Supports searches by query and location or place details by place_id."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-maps-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/maps"}}},"x-output-schema":{"type":"object","properties":{"search_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"address":{"type":"string"},"rating":{"type":"number"},"reviews":{"type":"number"},"gps_coordinates":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"additionalProperties":true},"place_id":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Maps JSON. search_results contains places with title, address, rating, reviews, place_id and gps_coordinates when available."},"x-input-example":{"query":"coffee near Times Square","ll":"@40.758,-73.9855,14z","language":"en"},"x-output-example":{"search_results":[{"title":"Broadway Coffee","address":"1500 Broadway, New York, NY 10036","rating":4.6,"reviews":128,"gps_coordinates":{"latitude":40.7565,"longitude":-73.9869},"place_id":"ChIJmQJIxlVYwokRLgeuocVOGVU"}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"parameters":[{"name":"query","in":"query","required":false,"description":"Maps search text, e.g. coffee in Rome; required unless place_id is supplied. Without location or ll, FastAF uses a place named in the query. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192,"example":"coffee near Times Square"},"example":"coffee near Times Square"},{"name":"location","in":"query","required":false,"description":"Search-centre place name, e.g. Rome, Italy (up to 200 characters). Cannot combine with ll. Omit to infer from query; unresolved or out-of-area results are not charged. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"ll","in":"query","required":false,"description":"Search centre as @latitude,longitude,zoom, e.g. @41.9028,12.4964,13z (coordinates in degrees; zoom 3z-30z; map height in metres also supported upstream). Needed for pagination. Cannot combine with location; omitted: infer from query/location. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192,"example":"@40.758,-73.9855,14z"},"example":"@40.758,-73.9855,14z"},{"name":"domain","in":"query","required":false,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"language","in":"query","required":false,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192,"example":"en"},"example":"en"},{"name":"country","in":"query","required":false,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"data","in":"query","required":false,"description":"Opaque data fragment copied from a Google Maps URL, e.g. !4m5!3m4!1s<id>!8m2!3d<lat>!4d<lon>. Used with type=place; unnecessary with place_id. No default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"place_id","in":"query","required":false,"description":"Google Maps place identifier, e.g. ChIJN1t_tDeuEmsRUsoyG83frY4, for one place's details. Required if query is omitted; no default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"type","in":"query","required":false,"description":"Maps operation: search for query results or place for details using data. Omit for query search or automatic place_id lookup. No option surcharge; 5 credits per successful request.","schema":{"type":"string","enum":["search","place"]}},{"name":"page","in":"query","required":false,"description":"Maps result offset, integer 0-100: 0 first page, 20 second, 40 third. Default 0; supply ll for pagination. Each page is a separate request. No option surcharge; 5 credits per successful request.","schema":{"type":"integer","minimum":0}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}],"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"search_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"address":{"type":"string"},"rating":{"type":"number"},"reviews":{"type":"number"},"gps_coordinates":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"additionalProperties":true},"place_id":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Maps JSON. search_results contains places with title, address, rating, reviews, place_id and gps_coordinates when available."},"example":{"search_results":[{"title":"Broadway Coffee","address":"1500 Broadway, New York, NY 10036","rating":4.6,"reviews":128,"gps_coordinates":{"latitude":40.7565,"longitude":-73.9869},"place_id":"ChIJmQJIxlVYwokRLgeuocVOGVU"}]}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}}},"post":{"operationId":"x402PostMaps","summary":"FastAF Google Maps & Places","description":"Local business and places search API for AI agents: Google Maps results as JSON with addresses, ratings, review counts, coordinates and place IDs when available. Supports searches by query and location or place details by place_id. Provided by FastAF Google Maps & Places. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send a JSON body. An empty unpaid probe returns 402; a paid retry requires valid input. Only successful calls settle.","tags":["maps","google","places","local"],"x-category":"maps","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/maps","description":"Local business and places search API for AI agents: Google Maps results as JSON with addresses, ratings, review counts, coordinates and place IDs when available. Supports searches by query and location or place details by place_id. Provided by FastAF Google Maps & Places. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-maps-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"query":"coffee near Times Square","ll":"@40.758,-73.9855,14z","language":"en"},"method":"POST"},"output":{"type":"json","example":{"search_results":[{"title":"Broadway Coffee","address":"1500 Broadway, New York, NY 10036","rating":4.6,"reviews":128,"gps_coordinates":{"latitude":40.7565,"longitude":-73.9869},"place_id":"ChIJmQJIxlVYwokRLgeuocVOGVU"}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-maps-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","description":"Local places search by query and map center (ll); alternatively, place_id selects a place lookup.","examples":[{"query":"coffee near Times Square","ll":"@40.758,-73.9855,14z","language":"en"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Maps search text, e.g. coffee in Rome; required unless place_id is supplied. Without location or ll, FastAF uses a place named in the query. No option surcharge; 5 credits per successful request.","examples":["coffee near Times Square"]},"location":{"type":"string","maxLength":8192,"description":"Search-centre place name, e.g. Rome, Italy (up to 200 characters). Cannot combine with ll. Omit to infer from query; unresolved or out-of-area results are not charged. No option surcharge; 5 credits per successful request."},"ll":{"type":"string","maxLength":8192,"description":"Search centre as @latitude,longitude,zoom, e.g. @41.9028,12.4964,13z (coordinates in degrees; zoom 3z-30z; map height in metres also supported upstream). Needed for pagination. Cannot combine with location; omitted: infer from query/location. No option surcharge; 5 credits per successful request.","examples":["@40.758,-73.9855,14z"]},"domain":{"type":"string","maxLength":8192,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No option surcharge; 5 credits per successful request."},"language":{"type":"string","maxLength":8192,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 5 credits per successful request.","examples":["en"]},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 5 credits per successful request."},"data":{"type":"string","maxLength":8192,"description":"Opaque data fragment copied from a Google Maps URL, e.g. !4m5!3m4!1s<id>!8m2!3d<lat>!4d<lon>. Used with type=place; unnecessary with place_id. No default. No option surcharge; 5 credits per successful request."},"place_id":{"type":"string","maxLength":8192,"description":"Google Maps place identifier, e.g. ChIJN1t_tDeuEmsRUsoyG83frY4, for one place's details. Required if query is omitted; no default. No option surcharge; 5 credits per successful request."},"type":{"type":"string","enum":["search","place"],"description":"Maps operation: search for query results or place for details using data. Omit for query search or automatic place_id lookup. No option surcharge; 5 credits per successful request."},"page":{"type":"integer","minimum":0,"description":"Maps result offset, integer 0-100: 0 first page, 20 second, 40 third. Default 0; supply ll for pagination. Each page is a separate request. No option surcharge; 5 credits per successful request."}},"anyOf":[{"required":["query"]},{"required":["place_id"]}]}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"search_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"address":{"type":"string"},"rating":{"type":"number"},"reviews":{"type":"number"},"gps_coordinates":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"additionalProperties":true},"place_id":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Maps JSON. search_results contains places with title, address, rating, reviews, place_id and gps_coordinates when available."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF Google Maps & Places","description":"Local business and places search API for AI agents: Google Maps results as JSON with addresses, ratings, review counts, coordinates and place IDs when available. Supports searches by query and location or place details by place_id."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-maps-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/maps"}}},"x-output-schema":{"type":"object","properties":{"search_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"address":{"type":"string"},"rating":{"type":"number"},"reviews":{"type":"number"},"gps_coordinates":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"additionalProperties":true},"place_id":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Maps JSON. search_results contains places with title, address, rating, reviews, place_id and gps_coordinates when available."},"x-input-example":{"query":"coffee near Times Square","ll":"@40.758,-73.9855,14z","language":"en"},"x-output-example":{"search_results":[{"title":"Broadway Coffee","address":"1500 Broadway, New York, NY 10036","rating":4.6,"reviews":128,"gps_coordinates":{"latitude":40.7565,"longitude":-73.9869},"place_id":"ChIJmQJIxlVYwokRLgeuocVOGVU"}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"search_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"address":{"type":"string"},"rating":{"type":"number"},"reviews":{"type":"number"},"gps_coordinates":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"additionalProperties":true},"place_id":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Maps JSON. search_results contains places with title, address, rating, reviews, place_id and gps_coordinates when available."},"example":{"search_results":[{"title":"Broadway Coffee","address":"1500 Broadway, New York, NY 10036","rating":4.6,"reviews":128,"gps_coordinates":{"latitude":40.7565,"longitude":-73.9869},"place_id":"ChIJmQJIxlVYwokRLgeuocVOGVU"}]}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Local places search by query and map center (ll); alternatively, place_id selects a place lookup.","examples":[{"query":"coffee near Times Square","ll":"@40.758,-73.9855,14z","language":"en"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Maps search text, e.g. coffee in Rome; required unless place_id is supplied. Without location or ll, FastAF uses a place named in the query. No option surcharge; 5 credits per successful request.","examples":["coffee near Times Square"]},"location":{"type":"string","maxLength":8192,"description":"Search-centre place name, e.g. Rome, Italy (up to 200 characters). Cannot combine with ll. Omit to infer from query; unresolved or out-of-area results are not charged. No option surcharge; 5 credits per successful request."},"ll":{"type":"string","maxLength":8192,"description":"Search centre as @latitude,longitude,zoom, e.g. @41.9028,12.4964,13z (coordinates in degrees; zoom 3z-30z; map height in metres also supported upstream). Needed for pagination. Cannot combine with location; omitted: infer from query/location. No option surcharge; 5 credits per successful request.","examples":["@40.758,-73.9855,14z"]},"domain":{"type":"string","maxLength":8192,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No option surcharge; 5 credits per successful request."},"language":{"type":"string","maxLength":8192,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 5 credits per successful request.","examples":["en"]},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 5 credits per successful request."},"data":{"type":"string","maxLength":8192,"description":"Opaque data fragment copied from a Google Maps URL, e.g. !4m5!3m4!1s<id>!8m2!3d<lat>!4d<lon>. Used with type=place; unnecessary with place_id. No default. No option surcharge; 5 credits per successful request."},"place_id":{"type":"string","maxLength":8192,"description":"Google Maps place identifier, e.g. ChIJN1t_tDeuEmsRUsoyG83frY4, for one place's details. Required if query is omitted; no default. No option surcharge; 5 credits per successful request."},"type":{"type":"string","enum":["search","place"],"description":"Maps operation: search for query results or place for details using data. Omit for query search or automatic place_id lookup. No option surcharge; 5 credits per successful request."},"page":{"type":"integer","minimum":0,"description":"Maps result offset, integer 0-100: 0 first page, 20 second, 40 third. Default 0; supply ll for pagination. Each page is a separate request. No option surcharge; 5 credits per successful request."}},"anyOf":[{"required":["query"]},{"required":["place_id"]}]},"example":{"query":"coffee near Times Square","ll":"@40.758,-73.9855,14z","language":"en"}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}]}},"/x402/v1/amazon":{"get":{"operationId":"x402GetAmazon","summary":"FastAF Amazon Product Data","description":"Amazon product search and pricing API for AI agents: JSON product details by ASIN, keyword search results, offers and bestsellers. Supports Amazon marketplace domains for ecommerce research, with titles, prices, ratings and availability when available. Provided by FastAF Amazon Product Data. Price: $0.003000 USDC fixed per successful call. Docs: https://fastaf.co Send query parameters, not a JSON body. The PAYMENT-REQUIRED header quotes the fixed price of this endpoint; options that cost more than it (SERP advance_search, scrape with rendering plus premium proxies or AI extraction) return 400 options_need_api_key before payment and need an API key. Sign it with an x402 v2 client and retry the same URL with PAYMENT-SIGNATURE. Invalid parameters or blocked targets return 402 when unsigned, or 400 before payment verification/settlement when signed. Only successful calls are settled.","tags":["ecommerce","amazon","products","prices"],"x-category":"ecommerce","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/amazon","description":"Amazon product search and pricing API for AI agents: JSON product details by ASIN, keyword search results, offers and bestsellers. Supports Amazon marketplace domains for ecommerce research, with titles, prices, ratings and availability when available. Provided by FastAF Amazon Product Data. Price: $0.003000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/amazon-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"resource":"product","asin":"B07FZ8S74R","domain":"com"},"method":"GET"},"output":{"type":"json","example":{"asin":"B07FZ8S74R","title":"Echo Dot smart speaker","price":"$49.99","availability_status":"In Stock","average_rating":4.5,"total_reviews":1234}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/amazon-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET"]},"queryParams":{"type":"object","description":"Amazon product lookup using resource=product, an ASIN and marketplace domain. Search, offers and bestsellers use the corresponding resource selector.","examples":[{"resource":"product","asin":"B07FZ8S74R","domain":"com"}],"additionalProperties":false,"properties":{"resource":{"type":"string","enum":["search","product","offers","bestsellers"],"default":"search","description":"Amazon operation: search (default), product, offers or bestsellers. Reviews are not sold. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","examples":["product"]},"asin":{"type":"string","maxLength":8192,"description":"Amazon product identifier, usually 10 letters/digits, e.g. B07FZ8S74R. Required for product and offers; not used for search/bestsellers. No default. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","examples":["B07FZ8S74R"]},"query":{"type":"string","maxLength":8192,"description":"Required product search text for resource=search, e.g. wireless headphones. Not valid for other resources; no default. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"domain":{"type":"string","maxLength":8192,"description":"Amazon domain suffix, not a hostname: com, co.uk, de, in, etc.; default com. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","examples":["com"]},"country":{"type":"string","maxLength":8192,"description":"Two-letter marketplace/proxy country code, e.g. us, gb or de; default us. Unlike scrape.country, this has no FastAF surcharge. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"language":{"type":"string","maxLength":8192,"description":"Product-data language code, e.g. en, de or fr; omitted: marketplace default. Valid for search, product and bestsellers. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"postal_code":{"type":"string","maxLength":8192,"description":"Delivery postal/ZIP code, e.g. 10001, to localize availability and price. Valid for search/product/offers; omitted: source-default delivery location. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"page":{"type":"integer","minimum":1,"maximum":100,"description":"One-based page number, default 1. Search accepts 1-100; bestsellers accepts 1-2 (set full_list=false for a single page). Each request is billed separately. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"premium":{"type":"boolean","description":"Use premium proxies for resource=search; true/false, default false. Not valid for product/offers/bestsellers; no FastAF surcharge. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"sort_by":{"type":"string","enum":["helpful","recent"],"description":"Review order: helpful or recent. Reviews are currently unavailable, so requests using this option are rejected without charge; no FastAF default. No credits charged for rejected requests."},"filter_by_star":{"type":"string","enum":["all_stars","five_star","four_star","three_star","two_star","one_star","positive","critical"],"description":"Review rating filter: all_stars, five_star, four_star, three_star, two_star, one_star, positive or critical. Reviews unavailable; rejected without charge; no FastAF default. No credits charged for rejected requests."},"reviewer_type":{"type":"string","enum":["all_reviews","avp_only_reviews"],"description":"Review author filter: all_reviews or avp_only_reviews (verified purchases). Reviews unavailable; rejected without charge; no FastAF default. No credits charged for rejected requests."},"media_type":{"type":"string","enum":["all_contents","media_reviews_only"],"description":"Review attachment filter: all_contents or media_reviews_only. Reviews unavailable; rejected without charge; no FastAF default. No credits charged for rejected requests."},"format_type":{"type":"string","enum":["all_formats","current_format"],"description":"Review product-variant filter: all_formats or current_format. Reviews unavailable; rejected without charge; no FastAF default. No credits charged for rejected requests."},"url":{"type":"string","maxLength":8192,"description":"Full HTTP(S) Amazon reviews URL, an alternative to ASIN for reviews. Reviews are unavailable; this option is rejected without charge. No default. No credits charged for rejected requests."},"category_id":{"type":"string","maxLength":8192,"description":"Bestseller category slug, node ID or slug/node pair, e.g. kitchen, 289668 or kitchen/289668. Omit for all departments; bestsellers only. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"type":{"type":"string","enum":["bestsellers","new_releases","movers_and_shakers","most_wished_for","most_gifted"],"description":"Ranked list for bestsellers: bestsellers (default), new_releases, movers_and_shakers, most_wished_for or most_gifted. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"full_list":{"type":"boolean","description":"For bestsellers, true returns the combined ranked list (upstream default true); false returns only page. Boolean; no FastAF surcharge for the full list. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."}},"anyOf":[{"required":["query"]},{"required":["resource","asin"],"properties":{"resource":{"const":"product"}}},{"required":["resource","asin"],"properties":{"resource":{"const":"offers"}}},{"required":["resource"],"properties":{"resource":{"const":"bestsellers"}}}]}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"asin":{"type":"string"},"title":{"type":"string"},"price":{"type":"string"},"availability_status":{"type":"string"},"average_rating":{"type":"number"},"total_reviews":{"type":"number"}},"additionalProperties":true,"description":"Amazon product JSON for resource=product: ASIN, title, displayed price, availability_status, average_rating and total_reviews. Other resource modes return their own search, offer or bestseller data."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF Amazon Product Data","description":"Amazon product search and pricing API for AI agents: JSON product details by ASIN, keyword search results, offers and bestsellers. Supports Amazon marketplace domains for ecommerce research, with titles, prices, ratings and availability when available."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/amazon-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/amazon"}}},"x-output-schema":{"type":"object","properties":{"asin":{"type":"string"},"title":{"type":"string"},"price":{"type":"string"},"availability_status":{"type":"string"},"average_rating":{"type":"number"},"total_reviews":{"type":"number"}},"additionalProperties":true,"description":"Amazon product JSON for resource=product: ASIN, title, displayed price, availability_status, average_rating and total_reviews. Other resource modes return their own search, offer or bestseller data."},"x-input-example":{"resource":"product","asin":"B07FZ8S74R","domain":"com"},"x-output-example":{"asin":"B07FZ8S74R","title":"Echo Dot smart speaker","price":"$49.99","availability_status":"In Stock","average_rating":4.5,"total_reviews":1234},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.003000"}},"parameters":[{"name":"resource","in":"query","required":false,"description":"Amazon operation: search (default), product, offers or bestsellers. Reviews are not sold. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","schema":{"type":"string","enum":["search","product","offers","bestsellers"],"default":"search","example":"product"},"example":"product"},{"name":"asin","in":"query","required":false,"description":"Amazon product identifier, usually 10 letters/digits, e.g. B07FZ8S74R. Required for product and offers; not used for search/bestsellers. No default. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","schema":{"type":"string","maxLength":8192,"example":"B07FZ8S74R"},"example":"B07FZ8S74R"},{"name":"query","in":"query","required":false,"description":"Required product search text for resource=search, e.g. wireless headphones. Not valid for other resources; no default. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","schema":{"type":"string","maxLength":8192}},{"name":"domain","in":"query","required":false,"description":"Amazon domain suffix, not a hostname: com, co.uk, de, in, etc.; default com. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","schema":{"type":"string","maxLength":8192,"example":"com"},"example":"com"},{"name":"country","in":"query","required":false,"description":"Two-letter marketplace/proxy country code, e.g. us, gb or de; default us. Unlike scrape.country, this has no FastAF surcharge. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","schema":{"type":"string","maxLength":8192}},{"name":"language","in":"query","required":false,"description":"Product-data language code, e.g. en, de or fr; omitted: marketplace default. Valid for search, product and bestsellers. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","schema":{"type":"string","maxLength":8192}},{"name":"postal_code","in":"query","required":false,"description":"Delivery postal/ZIP code, e.g. 10001, to localize availability and price. Valid for search/product/offers; omitted: source-default delivery location. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","schema":{"type":"string","maxLength":8192}},{"name":"page","in":"query","required":false,"description":"One-based page number, default 1. Search accepts 1-100; bestsellers accepts 1-2 (set full_list=false for a single page). Each request is billed separately. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"premium","in":"query","required":false,"description":"Use premium proxies for resource=search; true/false, default false. Not valid for product/offers/bestsellers; no FastAF surcharge. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","schema":{"type":"boolean"}},{"name":"sort_by","in":"query","required":false,"description":"Review order: helpful or recent. Reviews are currently unavailable, so requests using this option are rejected without charge; no FastAF default. No credits charged for rejected requests.","schema":{"type":"string","enum":["helpful","recent"]}},{"name":"filter_by_star","in":"query","required":false,"description":"Review rating filter: all_stars, five_star, four_star, three_star, two_star, one_star, positive or critical. Reviews unavailable; rejected without charge; no FastAF default. No credits charged for rejected requests.","schema":{"type":"string","enum":["all_stars","five_star","four_star","three_star","two_star","one_star","positive","critical"]}},{"name":"reviewer_type","in":"query","required":false,"description":"Review author filter: all_reviews or avp_only_reviews (verified purchases). Reviews unavailable; rejected without charge; no FastAF default. No credits charged for rejected requests.","schema":{"type":"string","enum":["all_reviews","avp_only_reviews"]}},{"name":"media_type","in":"query","required":false,"description":"Review attachment filter: all_contents or media_reviews_only. Reviews unavailable; rejected without charge; no FastAF default. No credits charged for rejected requests.","schema":{"type":"string","enum":["all_contents","media_reviews_only"]}},{"name":"format_type","in":"query","required":false,"description":"Review product-variant filter: all_formats or current_format. Reviews unavailable; rejected without charge; no FastAF default. No credits charged for rejected requests.","schema":{"type":"string","enum":["all_formats","current_format"]}},{"name":"url","in":"query","required":false,"description":"Full HTTP(S) Amazon reviews URL, an alternative to ASIN for reviews. Reviews are unavailable; this option is rejected without charge. No default. No credits charged for rejected requests.","schema":{"type":"string","maxLength":8192}},{"name":"category_id","in":"query","required":false,"description":"Bestseller category slug, node ID or slug/node pair, e.g. kitchen, 289668 or kitchen/289668. Omit for all departments; bestsellers only. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","schema":{"type":"string","maxLength":8192}},{"name":"type","in":"query","required":false,"description":"Ranked list for bestsellers: bestsellers (default), new_releases, movers_and_shakers, most_wished_for or most_gifted. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","schema":{"type":"string","enum":["bestsellers","new_releases","movers_and_shakers","most_wished_for","most_gifted"]}},{"name":"full_list","in":"query","required":false,"description":"For bestsellers, true returns the combined ranked list (upstream default true); false returns only page. Boolean; no FastAF surcharge for the full list. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","schema":{"type":"boolean"}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}],"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"asin":{"type":"string"},"title":{"type":"string"},"price":{"type":"string"},"availability_status":{"type":"string"},"average_rating":{"type":"number"},"total_reviews":{"type":"number"}},"additionalProperties":true,"description":"Amazon product JSON for resource=product: ASIN, title, displayed price, availability_status, average_rating and total_reviews. Other resource modes return their own search, offer or bestseller data."},"example":{"asin":"B07FZ8S74R","title":"Echo Dot smart speaker","price":"$49.99","availability_status":"In Stock","average_rating":4.5,"total_reviews":1234}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}}},"post":{"operationId":"x402PostAmazon","summary":"FastAF Amazon Product Data","description":"Amazon product search and pricing API for AI agents: JSON product details by ASIN, keyword search results, offers and bestsellers. Supports Amazon marketplace domains for ecommerce research, with titles, prices, ratings and availability when available. Provided by FastAF Amazon Product Data. Price: $0.003000 USDC fixed per successful call. Docs: https://fastaf.co Send a JSON body. An empty unpaid probe returns 402; a paid retry requires valid input. Only successful calls settle.","tags":["ecommerce","amazon","products","prices"],"x-category":"ecommerce","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/amazon","description":"Amazon product search and pricing API for AI agents: JSON product details by ASIN, keyword search results, offers and bestsellers. Supports Amazon marketplace domains for ecommerce research, with titles, prices, ratings and availability when available. Provided by FastAF Amazon Product Data. Price: $0.003000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/amazon-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"resource":"product","asin":"B07FZ8S74R","domain":"com"},"method":"POST"},"output":{"type":"json","example":{"asin":"B07FZ8S74R","title":"Echo Dot smart speaker","price":"$49.99","availability_status":"In Stock","average_rating":4.5,"total_reviews":1234}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/amazon-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","description":"Amazon product lookup using resource=product, an ASIN and marketplace domain. Search, offers and bestsellers use the corresponding resource selector.","examples":[{"resource":"product","asin":"B07FZ8S74R","domain":"com"}],"additionalProperties":false,"properties":{"resource":{"type":"string","enum":["search","product","offers","bestsellers"],"default":"search","description":"Amazon operation: search (default), product, offers or bestsellers. Reviews are not sold. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","examples":["product"]},"asin":{"type":"string","maxLength":8192,"description":"Amazon product identifier, usually 10 letters/digits, e.g. B07FZ8S74R. Required for product and offers; not used for search/bestsellers. No default. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","examples":["B07FZ8S74R"]},"query":{"type":"string","maxLength":8192,"description":"Required product search text for resource=search, e.g. wireless headphones. Not valid for other resources; no default. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"domain":{"type":"string","maxLength":8192,"description":"Amazon domain suffix, not a hostname: com, co.uk, de, in, etc.; default com. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","examples":["com"]},"country":{"type":"string","maxLength":8192,"description":"Two-letter marketplace/proxy country code, e.g. us, gb or de; default us. Unlike scrape.country, this has no FastAF surcharge. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"language":{"type":"string","maxLength":8192,"description":"Product-data language code, e.g. en, de or fr; omitted: marketplace default. Valid for search, product and bestsellers. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"postal_code":{"type":"string","maxLength":8192,"description":"Delivery postal/ZIP code, e.g. 10001, to localize availability and price. Valid for search/product/offers; omitted: source-default delivery location. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"page":{"type":"integer","minimum":1,"maximum":100,"description":"One-based page number, default 1. Search accepts 1-100; bestsellers accepts 1-2 (set full_list=false for a single page). Each request is billed separately. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"premium":{"type":"boolean","description":"Use premium proxies for resource=search; true/false, default false. Not valid for product/offers/bestsellers; no FastAF surcharge. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"sort_by":{"type":"string","enum":["helpful","recent"],"description":"Review order: helpful or recent. Reviews are currently unavailable, so requests using this option are rejected without charge; no FastAF default. No credits charged for rejected requests."},"filter_by_star":{"type":"string","enum":["all_stars","five_star","four_star","three_star","two_star","one_star","positive","critical"],"description":"Review rating filter: all_stars, five_star, four_star, three_star, two_star, one_star, positive or critical. Reviews unavailable; rejected without charge; no FastAF default. No credits charged for rejected requests."},"reviewer_type":{"type":"string","enum":["all_reviews","avp_only_reviews"],"description":"Review author filter: all_reviews or avp_only_reviews (verified purchases). Reviews unavailable; rejected without charge; no FastAF default. No credits charged for rejected requests."},"media_type":{"type":"string","enum":["all_contents","media_reviews_only"],"description":"Review attachment filter: all_contents or media_reviews_only. Reviews unavailable; rejected without charge; no FastAF default. No credits charged for rejected requests."},"format_type":{"type":"string","enum":["all_formats","current_format"],"description":"Review product-variant filter: all_formats or current_format. Reviews unavailable; rejected without charge; no FastAF default. No credits charged for rejected requests."},"url":{"type":"string","maxLength":8192,"description":"Full HTTP(S) Amazon reviews URL, an alternative to ASIN for reviews. Reviews are unavailable; this option is rejected without charge. No default. No credits charged for rejected requests."},"category_id":{"type":"string","maxLength":8192,"description":"Bestseller category slug, node ID or slug/node pair, e.g. kitchen, 289668 or kitchen/289668. Omit for all departments; bestsellers only. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"type":{"type":"string","enum":["bestsellers","new_releases","movers_and_shakers","most_wished_for","most_gifted"],"description":"Ranked list for bestsellers: bestsellers (default), new_releases, movers_and_shakers, most_wished_for or most_gifted. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"full_list":{"type":"boolean","description":"For bestsellers, true returns the combined ranked list (upstream default true); false returns only page. Boolean; no FastAF surcharge for the full list. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."}},"anyOf":[{"required":["query"]},{"required":["resource","asin"],"properties":{"resource":{"const":"product"}}},{"required":["resource","asin"],"properties":{"resource":{"const":"offers"}}},{"required":["resource"],"properties":{"resource":{"const":"bestsellers"}}}]}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"asin":{"type":"string"},"title":{"type":"string"},"price":{"type":"string"},"availability_status":{"type":"string"},"average_rating":{"type":"number"},"total_reviews":{"type":"number"}},"additionalProperties":true,"description":"Amazon product JSON for resource=product: ASIN, title, displayed price, availability_status, average_rating and total_reviews. Other resource modes return their own search, offer or bestseller data."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF Amazon Product Data","description":"Amazon product search and pricing API for AI agents: JSON product details by ASIN, keyword search results, offers and bestsellers. Supports Amazon marketplace domains for ecommerce research, with titles, prices, ratings and availability when available."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/amazon-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/amazon"}}},"x-output-schema":{"type":"object","properties":{"asin":{"type":"string"},"title":{"type":"string"},"price":{"type":"string"},"availability_status":{"type":"string"},"average_rating":{"type":"number"},"total_reviews":{"type":"number"}},"additionalProperties":true,"description":"Amazon product JSON for resource=product: ASIN, title, displayed price, availability_status, average_rating and total_reviews. Other resource modes return their own search, offer or bestseller data."},"x-input-example":{"resource":"product","asin":"B07FZ8S74R","domain":"com"},"x-output-example":{"asin":"B07FZ8S74R","title":"Echo Dot smart speaker","price":"$49.99","availability_status":"In Stock","average_rating":4.5,"total_reviews":1234},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.003000"}},"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"asin":{"type":"string"},"title":{"type":"string"},"price":{"type":"string"},"availability_status":{"type":"string"},"average_rating":{"type":"number"},"total_reviews":{"type":"number"}},"additionalProperties":true,"description":"Amazon product JSON for resource=product: ASIN, title, displayed price, availability_status, average_rating and total_reviews. Other resource modes return their own search, offer or bestseller data."},"example":{"asin":"B07FZ8S74R","title":"Echo Dot smart speaker","price":"$49.99","availability_status":"In Stock","average_rating":4.5,"total_reviews":1234}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Amazon product lookup using resource=product, an ASIN and marketplace domain. Search, offers and bestsellers use the corresponding resource selector.","examples":[{"resource":"product","asin":"B07FZ8S74R","domain":"com"}],"additionalProperties":false,"properties":{"resource":{"type":"string","enum":["search","product","offers","bestsellers"],"default":"search","description":"Amazon operation: search (default), product, offers or bestsellers. Reviews are not sold. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","examples":["product"]},"asin":{"type":"string","maxLength":8192,"description":"Amazon product identifier, usually 10 letters/digits, e.g. B07FZ8S74R. Required for product and offers; not used for search/bestsellers. No default. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","examples":["B07FZ8S74R"]},"query":{"type":"string","maxLength":8192,"description":"Required product search text for resource=search, e.g. wireless headphones. Not valid for other resources; no default. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"domain":{"type":"string","maxLength":8192,"description":"Amazon domain suffix, not a hostname: com, co.uk, de, in, etc.; default com. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request.","examples":["com"]},"country":{"type":"string","maxLength":8192,"description":"Two-letter marketplace/proxy country code, e.g. us, gb or de; default us. Unlike scrape.country, this has no FastAF surcharge. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"language":{"type":"string","maxLength":8192,"description":"Product-data language code, e.g. en, de or fr; omitted: marketplace default. Valid for search, product and bestsellers. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"postal_code":{"type":"string","maxLength":8192,"description":"Delivery postal/ZIP code, e.g. 10001, to localize availability and price. Valid for search/product/offers; omitted: source-default delivery location. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"page":{"type":"integer","minimum":1,"maximum":100,"description":"One-based page number, default 1. Search accepts 1-100; bestsellers accepts 1-2 (set full_list=false for a single page). Each request is billed separately. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"premium":{"type":"boolean","description":"Use premium proxies for resource=search; true/false, default false. Not valid for product/offers/bestsellers; no FastAF surcharge. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"sort_by":{"type":"string","enum":["helpful","recent"],"description":"Review order: helpful or recent. Reviews are currently unavailable, so requests using this option are rejected without charge; no FastAF default. No credits charged for rejected requests."},"filter_by_star":{"type":"string","enum":["all_stars","five_star","four_star","three_star","two_star","one_star","positive","critical"],"description":"Review rating filter: all_stars, five_star, four_star, three_star, two_star, one_star, positive or critical. Reviews unavailable; rejected without charge; no FastAF default. No credits charged for rejected requests."},"reviewer_type":{"type":"string","enum":["all_reviews","avp_only_reviews"],"description":"Review author filter: all_reviews or avp_only_reviews (verified purchases). Reviews unavailable; rejected without charge; no FastAF default. No credits charged for rejected requests."},"media_type":{"type":"string","enum":["all_contents","media_reviews_only"],"description":"Review attachment filter: all_contents or media_reviews_only. Reviews unavailable; rejected without charge; no FastAF default. No credits charged for rejected requests."},"format_type":{"type":"string","enum":["all_formats","current_format"],"description":"Review product-variant filter: all_formats or current_format. Reviews unavailable; rejected without charge; no FastAF default. No credits charged for rejected requests."},"url":{"type":"string","maxLength":8192,"description":"Full HTTP(S) Amazon reviews URL, an alternative to ASIN for reviews. Reviews are unavailable; this option is rejected without charge. No default. No credits charged for rejected requests."},"category_id":{"type":"string","maxLength":8192,"description":"Bestseller category slug, node ID or slug/node pair, e.g. kitchen, 289668 or kitchen/289668. Omit for all departments; bestsellers only. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"type":{"type":"string","enum":["bestsellers","new_releases","movers_and_shakers","most_wished_for","most_gifted"],"description":"Ranked list for bestsellers: bestsellers (default), new_releases, movers_and_shakers, most_wished_for or most_gifted. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."},"full_list":{"type":"boolean","description":"For bestsellers, true returns the combined ranked list (upstream default true); false returns only page. Boolean; no FastAF surcharge for the full list. No option surcharge; search/product cost 1 credit, offers/bestsellers 5 credits per request."}},"anyOf":[{"required":["query"]},{"required":["resource","asin"],"properties":{"resource":{"const":"product"}}},{"required":["resource","asin"],"properties":{"resource":{"const":"offers"}}},{"required":["resource"],"properties":{"resource":{"const":"bestsellers"}}}]},"example":{"resource":"product","asin":"B07FZ8S74R","domain":"com"}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}]}},"/x402/v1/linkedin":{"get":{"operationId":"x402GetLinkedin","summary":"FastAF LinkedIn Public Profiles","description":"LinkedIn public profile API for AI agents: retrieve a person by profile ID or slug for lead research and profile enrichment. Returns a JSON array with name, headline, location, public identifier and biography when available; public data only. Provided by FastAF LinkedIn Public Profiles. Price: $0.060000 USDC fixed per successful call. Docs: https://fastaf.co Send query parameters, not a JSON body. The PAYMENT-REQUIRED header quotes the fixed price of this endpoint; options that cost more than it (SERP advance_search, scrape with rendering plus premium proxies or AI extraction) return 400 options_need_api_key before payment and need an API key. Sign it with an x402 v2 client and retry the same URL with PAYMENT-SIGNATURE. Invalid parameters or blocked targets return 402 when unsigned, or 400 before payment verification/settlement when signed. Only successful calls are settled.","tags":["social","linkedin","people","profile","enrichment"],"x-category":"social","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/linkedin","description":"LinkedIn public profile API for AI agents: retrieve a person by profile ID or slug for lead research and profile enrichment. Returns a JSON array with name, headline, location, public identifier and biography when available; public data only. Provided by FastAF LinkedIn Public Profiles. Price: $0.060000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/linkedin-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"id":"williamhgates","type":"profile"},"method":"GET"},"output":{"type":"json","example":[{"fullName":"Bill Gates","public_identifier":"williamhgates","headline":"Co-chair, Gates Foundation","location":"Seattle, Washington, United States","about":"Working on global health, climate and education."}]},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/linkedin-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET"]},"queryParams":{"type":"object","description":"Public LinkedIn person lookup by id with type=profile.","examples":[{"id":"williamhgates","type":"profile"}],"additionalProperties":false,"properties":{"id":{"type":"string","maxLength":8192,"description":"Required public LinkedIn person-profile slug from /in/<id>/, e.g. williamhgates, not a full URL. No default; public data only. No option surcharge; 60 credits per successful request.","examples":["williamhgates"]},"type":{"type":"string","enum":["profile"],"description":"Profile resource selector; only profile is accepted and is the FastAF default. Company profiles are not supported here. No option surcharge; 60 credits per successful request.","examples":["profile"]},"premium":{"type":"boolean","description":"Use the premium profile retrieval option; true/false, default false. Still public data only; no additional FastAF credits. No option surcharge; 60 credits per successful request."}},"required":["id"]}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"array","items":{"type":"object","properties":{"fullName":{"type":"string"},"public_identifier":{"type":"string"},"headline":{"type":"string"},"location":{"type":"string"},"about":{"type":"string"}},"additionalProperties":true},"description":"JSON array of public LinkedIn profiles, not an object wrapper. fullName and public_identifier identify the person; headline, location and about are source-dependent."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF LinkedIn Public Profiles","description":"LinkedIn public profile API for AI agents: retrieve a person by profile ID or slug for lead research and profile enrichment. Returns a JSON array with name, headline, location, public identifier and biography when available; public data only."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/linkedin-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/linkedin"}}},"x-output-schema":{"type":"array","items":{"type":"object","properties":{"fullName":{"type":"string"},"public_identifier":{"type":"string"},"headline":{"type":"string"},"location":{"type":"string"},"about":{"type":"string"}},"additionalProperties":true},"description":"JSON array of public LinkedIn profiles, not an object wrapper. fullName and public_identifier identify the person; headline, location and about are source-dependent."},"x-input-example":{"id":"williamhgates","type":"profile"},"x-output-example":[{"fullName":"Bill Gates","public_identifier":"williamhgates","headline":"Co-chair, Gates Foundation","location":"Seattle, Washington, United States","about":"Working on global health, climate and education."}],"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.060000"}},"parameters":[{"name":"id","in":"query","required":true,"description":"Required public LinkedIn person-profile slug from /in/<id>/, e.g. williamhgates, not a full URL. No default; public data only. No option surcharge; 60 credits per successful request.","schema":{"type":"string","maxLength":8192,"example":"williamhgates"},"example":"williamhgates"},{"name":"type","in":"query","required":false,"description":"Profile resource selector; only profile is accepted and is the FastAF default. Company profiles are not supported here. No option surcharge; 60 credits per successful request.","schema":{"type":"string","enum":["profile"],"example":"profile"},"example":"profile"},{"name":"premium","in":"query","required":false,"description":"Use the premium profile retrieval option; true/false, default false. Still public data only; no additional FastAF credits. No option surcharge; 60 credits per successful request.","schema":{"type":"boolean"}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}],"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"fullName":{"type":"string"},"public_identifier":{"type":"string"},"headline":{"type":"string"},"location":{"type":"string"},"about":{"type":"string"}},"additionalProperties":true},"description":"JSON array of public LinkedIn profiles, not an object wrapper. fullName and public_identifier identify the person; headline, location and about are source-dependent."},"example":[{"fullName":"Bill Gates","public_identifier":"williamhgates","headline":"Co-chair, Gates Foundation","location":"Seattle, Washington, United States","about":"Working on global health, climate and education."}]}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}}},"post":{"operationId":"x402PostLinkedin","summary":"FastAF LinkedIn Public Profiles","description":"LinkedIn public profile API for AI agents: retrieve a person by profile ID or slug for lead research and profile enrichment. Returns a JSON array with name, headline, location, public identifier and biography when available; public data only. Provided by FastAF LinkedIn Public Profiles. Price: $0.060000 USDC fixed per successful call. Docs: https://fastaf.co Send a JSON body. An empty unpaid probe returns 402; a paid retry requires valid input. Only successful calls settle.","tags":["social","linkedin","people","profile","enrichment"],"x-category":"social","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/linkedin","description":"LinkedIn public profile API for AI agents: retrieve a person by profile ID or slug for lead research and profile enrichment. Returns a JSON array with name, headline, location, public identifier and biography when available; public data only. Provided by FastAF LinkedIn Public Profiles. Price: $0.060000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/linkedin-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"id":"williamhgates","type":"profile"},"method":"POST"},"output":{"type":"json","example":[{"fullName":"Bill Gates","public_identifier":"williamhgates","headline":"Co-chair, Gates Foundation","location":"Seattle, Washington, United States","about":"Working on global health, climate and education."}]},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/linkedin-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","description":"Public LinkedIn person lookup by id with type=profile.","examples":[{"id":"williamhgates","type":"profile"}],"additionalProperties":false,"properties":{"id":{"type":"string","maxLength":8192,"description":"Required public LinkedIn person-profile slug from /in/<id>/, e.g. williamhgates, not a full URL. No default; public data only. No option surcharge; 60 credits per successful request.","examples":["williamhgates"]},"type":{"type":"string","enum":["profile"],"description":"Profile resource selector; only profile is accepted and is the FastAF default. Company profiles are not supported here. No option surcharge; 60 credits per successful request.","examples":["profile"]},"premium":{"type":"boolean","description":"Use the premium profile retrieval option; true/false, default false. Still public data only; no additional FastAF credits. No option surcharge; 60 credits per successful request."}},"required":["id"]}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"array","items":{"type":"object","properties":{"fullName":{"type":"string"},"public_identifier":{"type":"string"},"headline":{"type":"string"},"location":{"type":"string"},"about":{"type":"string"}},"additionalProperties":true},"description":"JSON array of public LinkedIn profiles, not an object wrapper. fullName and public_identifier identify the person; headline, location and about are source-dependent."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF LinkedIn Public Profiles","description":"LinkedIn public profile API for AI agents: retrieve a person by profile ID or slug for lead research and profile enrichment. Returns a JSON array with name, headline, location, public identifier and biography when available; public data only."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/linkedin-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/linkedin"}}},"x-output-schema":{"type":"array","items":{"type":"object","properties":{"fullName":{"type":"string"},"public_identifier":{"type":"string"},"headline":{"type":"string"},"location":{"type":"string"},"about":{"type":"string"}},"additionalProperties":true},"description":"JSON array of public LinkedIn profiles, not an object wrapper. fullName and public_identifier identify the person; headline, location and about are source-dependent."},"x-input-example":{"id":"williamhgates","type":"profile"},"x-output-example":[{"fullName":"Bill Gates","public_identifier":"williamhgates","headline":"Co-chair, Gates Foundation","location":"Seattle, Washington, United States","about":"Working on global health, climate and education."}],"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.060000"}},"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"fullName":{"type":"string"},"public_identifier":{"type":"string"},"headline":{"type":"string"},"location":{"type":"string"},"about":{"type":"string"}},"additionalProperties":true},"description":"JSON array of public LinkedIn profiles, not an object wrapper. fullName and public_identifier identify the person; headline, location and about are source-dependent."},"example":[{"fullName":"Bill Gates","public_identifier":"williamhgates","headline":"Co-chair, Gates Foundation","location":"Seattle, Washington, United States","about":"Working on global health, climate and education."}]}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Public LinkedIn person lookup by id with type=profile.","examples":[{"id":"williamhgates","type":"profile"}],"additionalProperties":false,"properties":{"id":{"type":"string","maxLength":8192,"description":"Required public LinkedIn person-profile slug from /in/<id>/, e.g. williamhgates, not a full URL. No default; public data only. No option surcharge; 60 credits per successful request.","examples":["williamhgates"]},"type":{"type":"string","enum":["profile"],"description":"Profile resource selector; only profile is accepted and is the FastAF default. Company profiles are not supported here. No option surcharge; 60 credits per successful request.","examples":["profile"]},"premium":{"type":"boolean","description":"Use the premium profile retrieval option; true/false, default false. Still public data only; no additional FastAF credits. No option surcharge; 60 credits per successful request."}},"required":["id"]},"example":{"id":"williamhgates","type":"profile"}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}]}},"/x402/v1/youtube":{"get":{"operationId":"x402GetYoutube","summary":"FastAF YouTube Transcript & Metadata","description":"YouTube transcript and video search API for AI agents: retrieve timestamped transcript segments by video ID or find videos by keyword. Returns JSON transcripts with text, start and duration, or video search results for content research and summarization. Provided by FastAF YouTube Transcript & Metadata. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send query parameters, not a JSON body. The PAYMENT-REQUIRED header quotes the fixed price of this endpoint; options that cost more than it (SERP advance_search, scrape with rendering plus premium proxies or AI extraction) return 400 options_need_api_key before payment and need an API key. Sign it with an x402 v2 client and retry the same URL with PAYMENT-SIGNATURE. Invalid parameters or blocked targets return 402 when unsigned, or 400 before payment verification/settlement when signed. Only successful calls are settled.","tags":["video","youtube","transcript","search"],"x-category":"video","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/youtube","description":"YouTube transcript and video search API for AI agents: retrieve timestamped transcript segments by video ID or find videos by keyword. Returns JSON transcripts with text, start and duration, or video search results for content research and summarization. Provided by FastAF YouTube Transcript & Metadata. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/youtube-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"resource":"transcript","v":"jNQXAC9IVRw","language":"en"},"method":"GET"},"output":{"type":"json","example":{"transcripts":[{"text":"All right, so here we are in front of the elephants.","start":0,"duration":4.5},{"text":"The cool thing about these guys is that they have really long trunks.","start":4.5,"duration":5.5}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/youtube-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET"]},"queryParams":{"type":"object","description":"YouTube transcript lookup using resource=transcript and video ID v. Video search instead requires resource=search and search_query.","examples":[{"resource":"transcript","v":"jNQXAC9IVRw","language":"en"}],"additionalProperties":false,"properties":{"resource":{"type":"string","enum":["transcript","search"],"default":"transcript","description":"YouTube operation: transcript (default) or search. With no resource or video ID, search_query or its aliases selects search. Explicit canonical parameters take precedence over aliases. No option surcharge; transcript costs 5 credits, search 5 credits per request.","examples":["transcript"]},"v":{"type":"string","maxLength":8192,"description":"Required YouTube video ID for transcript, e.g. jNQXAC9IVRw, not the watch URL. ID aliases: video_id, videoId, id, videoID. URL aliases: url, link, video_url accept YouTube watch, youtu.be, shorts and embed URLs. Not valid for search; no default. No option surcharge; transcript costs 5 credits, search 5 credits per request.","examples":["jNQXAC9IVRw"]},"search_query":{"type":"string","maxLength":8192,"description":"Required YouTube search text for resource=search, e.g. espresso tutorial. Aliases: q, query, search, keyword; ignored when a video ID is supplied. Without resource or a video ID, selects search. Not valid for transcript; no default. No option surcharge; transcript costs 5 credits, search 5 credits per request."},"country":{"type":"string","maxLength":8192,"description":"Two-letter YouTube country code, e.g. us or gb; upstream default us for search/transcripts. No option surcharge; transcript costs 5 credits, search 5 credits per request."},"language":{"type":"string","maxLength":8192,"description":"YouTube language code, e.g. en, es or de; upstream default en. For transcripts, requests the available caption language; no translation is guaranteed. No option surcharge; transcript costs 5 credits, search 5 credits per request.","examples":["en"]},"sp":{"type":"string","maxLength":8192,"description":"YouTube search filter or continuation token copied from a search URL/previous response; search only. Omit for the first unfiltered page. Each page is a separate request. No option surcharge; transcript costs 5 credits, search 5 credits per request."}},"anyOf":[{"required":["v"]},{"required":["resource","search_query"],"properties":{"resource":{"const":"search"}}}]}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"transcripts":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"start":{"type":"number"},"duration":{"type":"number"}},"additionalProperties":true}}},"additionalProperties":true,"description":"YouTube transcript JSON: transcripts contains text segments with start and duration in seconds. resource=search returns video_results instead."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF YouTube Transcript & Metadata","description":"YouTube transcript and video search API for AI agents: retrieve timestamped transcript segments by video ID or find videos by keyword. Returns JSON transcripts with text, start and duration, or video search results for content research and summarization."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/youtube-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/youtube"}}},"x-output-schema":{"type":"object","properties":{"transcripts":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"start":{"type":"number"},"duration":{"type":"number"}},"additionalProperties":true}}},"additionalProperties":true,"description":"YouTube transcript JSON: transcripts contains text segments with start and duration in seconds. resource=search returns video_results instead."},"x-input-example":{"resource":"transcript","v":"jNQXAC9IVRw","language":"en"},"x-output-example":{"transcripts":[{"text":"All right, so here we are in front of the elephants.","start":0,"duration":4.5},{"text":"The cool thing about these guys is that they have really long trunks.","start":4.5,"duration":5.5}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"parameters":[{"name":"resource","in":"query","required":false,"description":"YouTube operation: transcript (default) or search. With no resource or video ID, search_query or its aliases selects search. Explicit canonical parameters take precedence over aliases. No option surcharge; transcript costs 5 credits, search 5 credits per request.","schema":{"type":"string","enum":["transcript","search"],"default":"transcript","example":"transcript"},"example":"transcript"},{"name":"v","in":"query","required":false,"description":"Required YouTube video ID for transcript, e.g. jNQXAC9IVRw, not the watch URL. ID aliases: video_id, videoId, id, videoID. URL aliases: url, link, video_url accept YouTube watch, youtu.be, shorts and embed URLs. Not valid for search; no default. No option surcharge; transcript costs 5 credits, search 5 credits per request.","schema":{"type":"string","maxLength":8192,"example":"jNQXAC9IVRw"},"example":"jNQXAC9IVRw"},{"name":"search_query","in":"query","required":false,"description":"Required YouTube search text for resource=search, e.g. espresso tutorial. Aliases: q, query, search, keyword; ignored when a video ID is supplied. Without resource or a video ID, selects search. Not valid for transcript; no default. No option surcharge; transcript costs 5 credits, search 5 credits per request.","schema":{"type":"string","maxLength":8192}},{"name":"country","in":"query","required":false,"description":"Two-letter YouTube country code, e.g. us or gb; upstream default us for search/transcripts. No option surcharge; transcript costs 5 credits, search 5 credits per request.","schema":{"type":"string","maxLength":8192}},{"name":"language","in":"query","required":false,"description":"YouTube language code, e.g. en, es or de; upstream default en. For transcripts, requests the available caption language; no translation is guaranteed. No option surcharge; transcript costs 5 credits, search 5 credits per request.","schema":{"type":"string","maxLength":8192,"example":"en"},"example":"en"},{"name":"sp","in":"query","required":false,"description":"YouTube search filter or continuation token copied from a search URL/previous response; search only. Omit for the first unfiltered page. Each page is a separate request. No option surcharge; transcript costs 5 credits, search 5 credits per request.","schema":{"type":"string","maxLength":8192}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}],"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"transcripts":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"start":{"type":"number"},"duration":{"type":"number"}},"additionalProperties":true}}},"additionalProperties":true,"description":"YouTube transcript JSON: transcripts contains text segments with start and duration in seconds. resource=search returns video_results instead."},"example":{"transcripts":[{"text":"All right, so here we are in front of the elephants.","start":0,"duration":4.5},{"text":"The cool thing about these guys is that they have really long trunks.","start":4.5,"duration":5.5}]}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}}},"post":{"operationId":"x402PostYoutube","summary":"FastAF YouTube Transcript & Metadata","description":"YouTube transcript and video search API for AI agents: retrieve timestamped transcript segments by video ID or find videos by keyword. Returns JSON transcripts with text, start and duration, or video search results for content research and summarization. Provided by FastAF YouTube Transcript & Metadata. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send a JSON body. An empty unpaid probe returns 402; a paid retry requires valid input. Only successful calls settle.","tags":["video","youtube","transcript","search"],"x-category":"video","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/youtube","description":"YouTube transcript and video search API for AI agents: retrieve timestamped transcript segments by video ID or find videos by keyword. Returns JSON transcripts with text, start and duration, or video search results for content research and summarization. Provided by FastAF YouTube Transcript & Metadata. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/youtube-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"resource":"transcript","v":"jNQXAC9IVRw","language":"en"},"method":"POST"},"output":{"type":"json","example":{"transcripts":[{"text":"All right, so here we are in front of the elephants.","start":0,"duration":4.5},{"text":"The cool thing about these guys is that they have really long trunks.","start":4.5,"duration":5.5}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/youtube-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","description":"YouTube transcript lookup using resource=transcript and video ID v. Video search instead requires resource=search and search_query.","examples":[{"resource":"transcript","v":"jNQXAC9IVRw","language":"en"}],"additionalProperties":false,"properties":{"resource":{"type":"string","enum":["transcript","search"],"default":"transcript","description":"YouTube operation: transcript (default) or search. With no resource or video ID, search_query or its aliases selects search. Explicit canonical parameters take precedence over aliases. No option surcharge; transcript costs 5 credits, search 5 credits per request.","examples":["transcript"]},"v":{"type":"string","maxLength":8192,"description":"Required YouTube video ID for transcript, e.g. jNQXAC9IVRw, not the watch URL. ID aliases: video_id, videoId, id, videoID. URL aliases: url, link, video_url accept YouTube watch, youtu.be, shorts and embed URLs. Not valid for search; no default. No option surcharge; transcript costs 5 credits, search 5 credits per request.","examples":["jNQXAC9IVRw"]},"search_query":{"type":"string","maxLength":8192,"description":"Required YouTube search text for resource=search, e.g. espresso tutorial. Aliases: q, query, search, keyword; ignored when a video ID is supplied. Without resource or a video ID, selects search. Not valid for transcript; no default. No option surcharge; transcript costs 5 credits, search 5 credits per request."},"country":{"type":"string","maxLength":8192,"description":"Two-letter YouTube country code, e.g. us or gb; upstream default us for search/transcripts. No option surcharge; transcript costs 5 credits, search 5 credits per request."},"language":{"type":"string","maxLength":8192,"description":"YouTube language code, e.g. en, es or de; upstream default en. For transcripts, requests the available caption language; no translation is guaranteed. No option surcharge; transcript costs 5 credits, search 5 credits per request.","examples":["en"]},"sp":{"type":"string","maxLength":8192,"description":"YouTube search filter or continuation token copied from a search URL/previous response; search only. Omit for the first unfiltered page. Each page is a separate request. No option surcharge; transcript costs 5 credits, search 5 credits per request."}},"anyOf":[{"required":["v"]},{"required":["resource","search_query"],"properties":{"resource":{"const":"search"}}}]}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"transcripts":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"start":{"type":"number"},"duration":{"type":"number"}},"additionalProperties":true}}},"additionalProperties":true,"description":"YouTube transcript JSON: transcripts contains text segments with start and duration in seconds. resource=search returns video_results instead."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF YouTube Transcript & Metadata","description":"YouTube transcript and video search API for AI agents: retrieve timestamped transcript segments by video ID or find videos by keyword. Returns JSON transcripts with text, start and duration, or video search results for content research and summarization."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/youtube-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/youtube"}}},"x-output-schema":{"type":"object","properties":{"transcripts":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"start":{"type":"number"},"duration":{"type":"number"}},"additionalProperties":true}}},"additionalProperties":true,"description":"YouTube transcript JSON: transcripts contains text segments with start and duration in seconds. resource=search returns video_results instead."},"x-input-example":{"resource":"transcript","v":"jNQXAC9IVRw","language":"en"},"x-output-example":{"transcripts":[{"text":"All right, so here we are in front of the elephants.","start":0,"duration":4.5},{"text":"The cool thing about these guys is that they have really long trunks.","start":4.5,"duration":5.5}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"transcripts":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"start":{"type":"number"},"duration":{"type":"number"}},"additionalProperties":true}}},"additionalProperties":true,"description":"YouTube transcript JSON: transcripts contains text segments with start and duration in seconds. resource=search returns video_results instead."},"example":{"transcripts":[{"text":"All right, so here we are in front of the elephants.","start":0,"duration":4.5},{"text":"The cool thing about these guys is that they have really long trunks.","start":4.5,"duration":5.5}]}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"YouTube transcript lookup using resource=transcript and video ID v. Video search instead requires resource=search and search_query.","examples":[{"resource":"transcript","v":"jNQXAC9IVRw","language":"en"}],"additionalProperties":false,"properties":{"resource":{"type":"string","enum":["transcript","search"],"default":"transcript","description":"YouTube operation: transcript (default) or search. With no resource or video ID, search_query or its aliases selects search. Explicit canonical parameters take precedence over aliases. No option surcharge; transcript costs 5 credits, search 5 credits per request.","examples":["transcript"]},"v":{"type":"string","maxLength":8192,"description":"Required YouTube video ID for transcript, e.g. jNQXAC9IVRw, not the watch URL. ID aliases: video_id, videoId, id, videoID. URL aliases: url, link, video_url accept YouTube watch, youtu.be, shorts and embed URLs. Not valid for search; no default. No option surcharge; transcript costs 5 credits, search 5 credits per request.","examples":["jNQXAC9IVRw"]},"search_query":{"type":"string","maxLength":8192,"description":"Required YouTube search text for resource=search, e.g. espresso tutorial. Aliases: q, query, search, keyword; ignored when a video ID is supplied. Without resource or a video ID, selects search. Not valid for transcript; no default. No option surcharge; transcript costs 5 credits, search 5 credits per request."},"country":{"type":"string","maxLength":8192,"description":"Two-letter YouTube country code, e.g. us or gb; upstream default us for search/transcripts. No option surcharge; transcript costs 5 credits, search 5 credits per request."},"language":{"type":"string","maxLength":8192,"description":"YouTube language code, e.g. en, es or de; upstream default en. For transcripts, requests the available caption language; no translation is guaranteed. No option surcharge; transcript costs 5 credits, search 5 credits per request.","examples":["en"]},"sp":{"type":"string","maxLength":8192,"description":"YouTube search filter or continuation token copied from a search URL/previous response; search only. Omit for the first unfiltered page. Each page is a separate request. No option surcharge; transcript costs 5 credits, search 5 credits per request."}},"anyOf":[{"required":["v"]},{"required":["resource","search_query"],"properties":{"resource":{"const":"search"}}}]},"example":{"resource":"transcript","v":"jNQXAC9IVRw","language":"en"}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}]}},"/x402/v1/scrape":{"get":{"operationId":"scrape_webpage_get","summary":"Scrape a public webpage","x-tool-slug":"scrape_webpage","description":"Scrape a public webpage for AI agents: convert a web page URL into markdown, HTML, links or images, with optional JavaScript rendering and AI extraction or summary. Supports web content retrieval for research and RAG; response format follows the requested options. Provided by Scrape a public webpage. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send query parameters, not a JSON body. The PAYMENT-REQUIRED header quotes the fixed price of this endpoint; options that cost more than it (SERP advance_search, scrape with rendering plus premium proxies or AI extraction) return 400 options_need_api_key before payment and need an API key. Sign it with an x402 v2 client and retry the same URL with PAYMENT-SIGNATURE. Invalid parameters or blocked targets return 402 when unsigned, or 400 before payment verification/settlement when signed. Only successful calls are settled. With max_tokens the answer is JSON {content, truncated, estimated_tokens, max_tokens, content_type, content_id, content_url, expires_at}; a truncated page is kept 60 minutes at content_url (GET /v1/scrape/content/{content_id} with the same API key, or GET /x402/scrape/content/{content_id} without payment for x402), never charged again.","tags":["web-scraping","scrape","web","markdown","extraction"],"x-category":"web-scraping","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/scrape","description":"Scrape a public webpage for AI agents: convert a web page URL into markdown, HTML, links or images, with optional JavaScript rendering and AI extraction or summary. Supports web content retrieval for research and RAG; response format follows the requested options. Provided by Scrape a public webpage. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/web-scraping-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"text/html"},"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"url":"https://example.com/","formats":"markdown"},"method":"GET"},"output":{"type":"text","example":"# Example Domain\n\nThis domain is for use in documentation examples without needing permission. Avoid use in operations.\n\n[Learn more](https://iana.org/domains/example)","format":"text/markdown"},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/web-scraping-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET"]},"queryParams":{"type":"object","description":"Web page retrieval by URL with formats=markdown; dynamic and other optional rendering or extraction parameters select different modes.","examples":[{"url":"https://example.com/","formats":"markdown"}],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","description":"Required public HTTP(S) page URL. Zillow/eBay URLs are rejected without charge: use their dedicated endpoints. Booking defaults to rendering; Reddit uses a best-effort public feed (1 credit), ignoring rendering/proxy/wait/session/header options. Normal base cost: 1 credit; rendered Booking defaults cost 5. Other selected modes/AI can increase cost.","examples":["https://example.com/"]},"dynamic":{"type":"boolean","description":"Render JavaScript before extracting content; true/false. FastAF default false, except booking.com defaults true with wait=8000. Ignored for Reddit feeds. Base cost: 1 credit without rendering, 5 with rendering, or 25 with rendering plus premium/country; AI adds 10."},"js_rendering":{"type":"boolean","description":"Alias for dynamic with identical defaults and pricing. Boolean; cannot disagree with dynamic. Ignored for Reddit feeds. Base cost: 1 credit without rendering, 5 with rendering, or 25 with rendering plus premium/country; AI adds 10."},"premium":{"type":"boolean","description":"Use residential proxies; true/false, default false. Cannot combine true with challenge_mode. Ignored for Reddit feeds. Base cost with premium=true or any country: 10 credits, 25 with dynamic; AI adds 10."},"custom_headers":{"type":"boolean","description":"Boolean upstream header-forwarding flag, default false; NOT a header map. FastAF does not forward caller HTTP headers, cookies or Authorization to the target, so this cannot customize them. Ignored for Reddit feeds. No additional credits; selected rendering/proxy/AI options determine the request cost."},"wait":{"type":"integer","minimum":0,"maximum":35000,"description":"Extra browser loading delay in milliseconds, integer 0-35000, for dynamic rendering. Omitted: no explicit extra delay, except rendered booking.com defaults to 8000. Does not enable rendering; ignored for Reddit feeds. No additional credits; selected rendering/proxy/AI options determine the request cost."},"country":{"type":"string","maxLength":8192,"description":"Proxy exit country as a two-letter ISO 3166-1 code, e.g. us, gb or de. Omit for no country targeting. Selecting any country uses premium-tier pricing even if premium=false; incompatible with challenge_mode. Ignored for Reddit feeds. Base cost with premium=true or any country: 10 credits, 25 with dynamic; AI adds 10."},"session_number":{"type":"string","maxLength":8192,"description":"Reusable proxy session identifier, e.g. 12345. Repeat it to request the same proxy IP; expires after 60 seconds of inactivity. Omit to rotate normally. Ignored for Reddit feeds; not a FastAF login session. No additional credits; selected rendering/proxy/AI options determine the request cost."},"image":{"type":"boolean","description":"Enable fetching image URLs; true/false, default false. Not a screenshot: use /screenshot for captures, or formats=images to extract page image links. No additional credits; selected rendering/proxy/AI options determine the request cost."},"formats":{"type":"string","enum":["html","links","markdown","summary","images"],"description":"One output format: html (default), links, markdown, summary or images. summary is AI-generated; links/images extract page URLs. Reddit supports html/markdown only. AI extraction (ai_query, ai_extract_rules or formats=summary) adds 10 credits once per request, even when combined; other formats add none.","examples":["markdown"]},"ai_query":{"type":"string","maxLength":8192,"description":"Natural-language extraction prompt, e.g. Return the product price and currency. Omit for no prompt-based extraction. Not supported for Reddit feeds. AI extraction (ai_query, ai_extract_rules or formats=summary) adds 10 credits once per request, even when combined; other formats add none."},"ai_extract_rules":{"type":"string","maxLength":8192,"description":"JSON-encoded extraction instructions as a STRING, e.g. {\"price\":\"product price\",\"currency\":\"currency code\"}; not a nested JSON object. Omit for no rule-based extraction. Not supported for Reddit feeds. AI extraction (ai_query, ai_extract_rules or formats=summary) adds 10 credits once per request, even when combined; other formats add none."},"type":{"type":"string","enum":["image","pdf","pbf"],"description":"Non-HTML target format: image, pdf or pbf (Protocolbuffer Binary Format). Omit for normal page scraping. This selects a binary resource, not a screenshot or an output format conversion. No additional credits; selected rendering/proxy/AI options determine the request cost."},"challenge_mode":{"type":"boolean","description":"Separate rendering mode with its own browser and proxies; true/false, default false. Uses its own rendering/proxies; cannot combine with dynamic=true, premium=true or country. Ignored for Reddit feeds. When enabled: 10 base credits; AI adds 10."},"max_tokens":{"type":"integer","minimum":1,"maximum":1000000,"description":"Optional token limit, integer 1-1000000, estimated at ~4 characters per token. Changes the answer to JSON {content, truncated, estimated_tokens, max_tokens, content_type}; over the limit, content is the first max_tokens*4 characters and content_id/content_url/expires_at fetch the full page for 1 hour at no extra charge (same API key; on x402 the id alone). Omit for the unchanged raw response; binary types are never cut. Costs the same credits and x402 price as without it. No additional credits; selected rendering/proxy/AI options determine the request cost."},"async":{"type":"boolean","default":false,"description":"Return 202 with a scrape job immediately. Otherwise a scrape still running after 25 seconds returns 202. Default false; no extra credits."}},"required":["url"]}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"string","description":"Markdown response text for formats=markdown, not a JSON wrapper. HTML is the default; links/images formats return JSON and binary targets return bytes."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"Scrape a public webpage","description":"Scrape a public webpage for AI agents: convert a web page URL into markdown, HTML, links or images, with optional JavaScript rendering and AI extraction or summary. Supports web content retrieval for research and RAG; response format follows the requested options.","x-tool-slug":"scrape_webpage"},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/web-scraping-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/scrape"}}},"x-output-schema":{"anyOf":[{"type":"string"},{"type":["object","array"],"additionalProperties":true},{"type":"string","format":"binary"}]},"x-input-example":{"url":"https://example.com/","formats":"markdown"},"x-output-example":"# Example Domain\n\nThis domain is for use in documentation examples without needing permission. Avoid use in operations.\n\n[Learn more](https://iana.org/domains/example)","security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"parameters":[{"name":"async","in":"query","required":false,"description":"Return 202 with a scrape job immediately. Otherwise a scrape still running after 25 seconds returns 202. Default false; no extra credits.","schema":{"type":"boolean","default":false}},{"name":"url","in":"query","required":true,"description":"Required public HTTP(S) page URL. Zillow/eBay URLs are rejected without charge: use their dedicated endpoints. Booking defaults to rendering; Reddit uses a best-effort public feed (1 credit), ignoring rendering/proxy/wait/session/header options. Normal base cost: 1 credit; rendered Booking defaults cost 5. Other selected modes/AI can increase cost.","schema":{"type":"string","format":"uri","pattern":"^https?://","example":"https://example.com/"},"example":"https://example.com/"},{"name":"dynamic","in":"query","required":false,"description":"Render JavaScript before extracting content; true/false. FastAF default false, except booking.com defaults true with wait=8000. Ignored for Reddit feeds. Base cost: 1 credit without rendering, 5 with rendering, or 25 with rendering plus premium/country; AI adds 10.","schema":{"type":"boolean"}},{"name":"js_rendering","in":"query","required":false,"description":"Alias for dynamic with identical defaults and pricing. Boolean; cannot disagree with dynamic. Ignored for Reddit feeds. Base cost: 1 credit without rendering, 5 with rendering, or 25 with rendering plus premium/country; AI adds 10.","schema":{"type":"boolean"}},{"name":"premium","in":"query","required":false,"description":"Use residential proxies; true/false, default false. Cannot combine true with challenge_mode. Ignored for Reddit feeds. Base cost with premium=true or any country: 10 credits, 25 with dynamic; AI adds 10.","schema":{"type":"boolean"}},{"name":"custom_headers","in":"query","required":false,"description":"Boolean upstream header-forwarding flag, default false; NOT a header map. FastAF does not forward caller HTTP headers, cookies or Authorization to the target, so this cannot customize them. Ignored for Reddit feeds. No additional credits; selected rendering/proxy/AI options determine the request cost.","schema":{"type":"boolean"}},{"name":"wait","in":"query","required":false,"description":"Extra browser loading delay in milliseconds, integer 0-35000, for dynamic rendering. Omitted: no explicit extra delay, except rendered booking.com defaults to 8000. Does not enable rendering; ignored for Reddit feeds. No additional credits; selected rendering/proxy/AI options determine the request cost.","schema":{"type":"integer","minimum":0,"maximum":35000}},{"name":"country","in":"query","required":false,"description":"Proxy exit country as a two-letter ISO 3166-1 code, e.g. us, gb or de. Omit for no country targeting. Selecting any country uses premium-tier pricing even if premium=false; incompatible with challenge_mode. Ignored for Reddit feeds. Base cost with premium=true or any country: 10 credits, 25 with dynamic; AI adds 10.","schema":{"type":"string","maxLength":8192}},{"name":"session_number","in":"query","required":false,"description":"Reusable proxy session identifier, e.g. 12345. Repeat it to request the same proxy IP; expires after 60 seconds of inactivity. Omit to rotate normally. Ignored for Reddit feeds; not a FastAF login session. No additional credits; selected rendering/proxy/AI options determine the request cost.","schema":{"type":"string","maxLength":8192}},{"name":"image","in":"query","required":false,"description":"Enable fetching image URLs; true/false, default false. Not a screenshot: use /screenshot for captures, or formats=images to extract page image links. No additional credits; selected rendering/proxy/AI options determine the request cost.","schema":{"type":"boolean"}},{"name":"formats","in":"query","required":false,"description":"One output format: html (default), links, markdown, summary or images. summary is AI-generated; links/images extract page URLs. Reddit supports html/markdown only. AI extraction (ai_query, ai_extract_rules or formats=summary) adds 10 credits once per request, even when combined; other formats add none.","schema":{"type":"string","enum":["html","links","markdown","summary","images"],"example":"markdown"},"example":"markdown"},{"name":"ai_query","in":"query","required":false,"description":"Natural-language extraction prompt, e.g. Return the product price and currency. Omit for no prompt-based extraction. Not supported for Reddit feeds. AI extraction (ai_query, ai_extract_rules or formats=summary) adds 10 credits once per request, even when combined; other formats add none.","schema":{"type":"string","maxLength":8192}},{"name":"ai_extract_rules","in":"query","required":false,"description":"JSON-encoded extraction instructions as a STRING, e.g. {\"price\":\"product price\",\"currency\":\"currency code\"}; not a nested JSON object. Omit for no rule-based extraction. Not supported for Reddit feeds. AI extraction (ai_query, ai_extract_rules or formats=summary) adds 10 credits once per request, even when combined; other formats add none.","schema":{"type":"string","maxLength":8192}},{"name":"type","in":"query","required":false,"description":"Non-HTML target format: image, pdf or pbf (Protocolbuffer Binary Format). Omit for normal page scraping. This selects a binary resource, not a screenshot or an output format conversion. No additional credits; selected rendering/proxy/AI options determine the request cost.","schema":{"type":"string","enum":["image","pdf","pbf"]}},{"name":"challenge_mode","in":"query","required":false,"description":"Separate rendering mode with its own browser and proxies; true/false, default false. Uses its own rendering/proxies; cannot combine with dynamic=true, premium=true or country. Ignored for Reddit feeds. When enabled: 10 base credits; AI adds 10.","schema":{"type":"boolean"}},{"name":"max_tokens","in":"query","required":false,"description":"Optional token limit, integer 1-1000000, estimated at ~4 characters per token. Changes the answer to JSON {content, truncated, estimated_tokens, max_tokens, content_type}; over the limit, content is the first max_tokens*4 characters and content_id/content_url/expires_at fetch the full page for 1 hour at no extra charge (same API key; on x402 the id alone). Omit for the unchanged raw response; binary types are never cut. Costs the same credits and x402 price as without it. No additional credits; selected rendering/proxy/AI options determine the request cost.","schema":{"type":"integer","minimum":1,"maximum":1000000}},{"name":"sample","in":"query","required":false,"description":"Set to 1 to get a fixed, illustrative example of this endpoint's output instead of a real call: the same JSON for everyone, marked {\"sample\": true, \"illustrative\": true}, ignoring every other parameter. No payment, API key or data source is involved; cached publicly for an hour and rate-limited per IP.","schema":{"type":"string","enum":["1"]}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}],"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}},"X-FastAF-Truncated":{"description":"With max_tokens: whether content was cut.","schema":{"type":"string","enum":["true","false"]}}},"content":{"text/html":{"schema":{"type":"string"}},"text/markdown":{"schema":{"type":"string"},"example":"# Example Domain\n\nThis domain is for use in documentation examples without needing permission. Avoid use in operations.\n\n[Learn more](https://iana.org/domains/example)"},"text/plain":{"schema":{"type":"string"}},"application/json":{"schema":{"type":["object","array"],"additionalProperties":true}},"image/*":{"schema":{"type":"string","format":"binary"}},"application/pdf":{"schema":{"type":"string","format":"binary"}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"202":{"description":"Scrape accepted, no final charge or x402 settlement yet. Poll Location with the same account key, or X-Scrape-Token on x402.","headers":{"Location":{"schema":{"type":"string","format":"uri"}},"Retry-After":{"schema":{"type":"integer"}},"X-Scrape-Token":{"description":"x402 only: private bearer capability for polling. Never log or share.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["job_id","status","expires_at"],"properties":{"job_id":{"type":"string"},"status":{"type":"string","enum":["pending","done","failed"]},"expires_at":{"type":"string","format":"date-time"},"status_url":{"type":"string","format":"uri"},"result":{"type":"string"},"content_type":{"type":"string"},"error":{"type":"string"},"credits_used":{"type":"integer"}}}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}},"x-max-tokens-response":{"type":"object","description":"Answer when max_tokens is sent. Tokens are estimated at ~4 characters per token.","required":["content","truncated","estimated_tokens","max_tokens","content_type"],"properties":{"content":{"type":"string","description":"The page, or its first max_tokens*4 characters when truncated."},"truncated":{"type":"boolean"},"estimated_tokens":{"type":"integer","minimum":0,"description":"Estimated tokens of the whole page."},"max_tokens":{"type":"integer","minimum":1},"content_type":{"type":["string","null"],"description":"Content type of the full page."},"content_id":{"type":"string","pattern":"^[0-9a-f]{64}$","description":"When truncated: id of the stored full page."},"content_url":{"type":"string","format":"uri","description":"When truncated: GET it for the full page, free, for 60 minutes (keyed: same API key; x402: no payment, the id is the proof)."},"expires_at":{"type":"string","format":"date-time"},"message":{"type":"string","description":"Present when the full page could not be stored."}}}},"post":{"operationId":"scrape_webpage_post","summary":"Scrape a public webpage","x-tool-slug":"scrape_webpage","description":"Scrape a public webpage for AI agents: convert a web page URL into markdown, HTML, links or images, with optional JavaScript rendering and AI extraction or summary. Supports web content retrieval for research and RAG; response format follows the requested options. Provided by Scrape a public webpage. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send a JSON body. An empty unpaid probe returns 402; a paid retry requires valid input. Only successful calls settle. With max_tokens the answer is JSON {content, truncated, estimated_tokens, max_tokens, content_type, content_id, content_url, expires_at}; a truncated page is kept 60 minutes at content_url (GET /v1/scrape/content/{content_id} with the same API key, or GET /x402/scrape/content/{content_id} without payment for x402), never charged again.","tags":["web-scraping","scrape","web","markdown","extraction"],"x-category":"web-scraping","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/scrape","description":"Scrape a public webpage for AI agents: convert a web page URL into markdown, HTML, links or images, with optional JavaScript rendering and AI extraction or summary. Supports web content retrieval for research and RAG; response format follows the requested options. Provided by Scrape a public webpage. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/web-scraping-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"text/html"},"extensions":{"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"url":"https://example.com/","formats":"markdown"},"method":"POST"},"output":{"type":"text","example":"# Example Domain\n\nThis domain is for use in documentation examples without needing permission. Avoid use in operations.\n\n[Learn more](https://iana.org/domains/example)","format":"text/markdown"},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/web-scraping-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","description":"Web page retrieval by URL with formats=markdown; dynamic and other optional rendering or extraction parameters select different modes.","examples":[{"url":"https://example.com/","formats":"markdown"}],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","description":"Required public HTTP(S) page URL. Zillow/eBay URLs are rejected without charge: use their dedicated endpoints. Booking defaults to rendering; Reddit uses a best-effort public feed (1 credit), ignoring rendering/proxy/wait/session/header options. Normal base cost: 1 credit; rendered Booking defaults cost 5. Other selected modes/AI can increase cost.","examples":["https://example.com/"]},"dynamic":{"type":"boolean","description":"Render JavaScript before extracting content; true/false. FastAF default false, except booking.com defaults true with wait=8000. Ignored for Reddit feeds. Base cost: 1 credit without rendering, 5 with rendering, or 25 with rendering plus premium/country; AI adds 10."},"js_rendering":{"type":"boolean","description":"Alias for dynamic with identical defaults and pricing. Boolean; cannot disagree with dynamic. Ignored for Reddit feeds. Base cost: 1 credit without rendering, 5 with rendering, or 25 with rendering plus premium/country; AI adds 10."},"premium":{"type":"boolean","description":"Use residential proxies; true/false, default false. Cannot combine true with challenge_mode. Ignored for Reddit feeds. Base cost with premium=true or any country: 10 credits, 25 with dynamic; AI adds 10."},"custom_headers":{"type":"boolean","description":"Boolean upstream header-forwarding flag, default false; NOT a header map. FastAF does not forward caller HTTP headers, cookies or Authorization to the target, so this cannot customize them. Ignored for Reddit feeds. No additional credits; selected rendering/proxy/AI options determine the request cost."},"wait":{"type":"integer","minimum":0,"maximum":35000,"description":"Extra browser loading delay in milliseconds, integer 0-35000, for dynamic rendering. Omitted: no explicit extra delay, except rendered booking.com defaults to 8000. Does not enable rendering; ignored for Reddit feeds. No additional credits; selected rendering/proxy/AI options determine the request cost."},"country":{"type":"string","maxLength":8192,"description":"Proxy exit country as a two-letter ISO 3166-1 code, e.g. us, gb or de. Omit for no country targeting. Selecting any country uses premium-tier pricing even if premium=false; incompatible with challenge_mode. Ignored for Reddit feeds. Base cost with premium=true or any country: 10 credits, 25 with dynamic; AI adds 10."},"session_number":{"type":"string","maxLength":8192,"description":"Reusable proxy session identifier, e.g. 12345. Repeat it to request the same proxy IP; expires after 60 seconds of inactivity. Omit to rotate normally. Ignored for Reddit feeds; not a FastAF login session. No additional credits; selected rendering/proxy/AI options determine the request cost."},"image":{"type":"boolean","description":"Enable fetching image URLs; true/false, default false. Not a screenshot: use /screenshot for captures, or formats=images to extract page image links. No additional credits; selected rendering/proxy/AI options determine the request cost."},"formats":{"type":"string","enum":["html","links","markdown","summary","images"],"description":"One output format: html (default), links, markdown, summary or images. summary is AI-generated; links/images extract page URLs. Reddit supports html/markdown only. AI extraction (ai_query, ai_extract_rules or formats=summary) adds 10 credits once per request, even when combined; other formats add none.","examples":["markdown"]},"ai_query":{"type":"string","maxLength":8192,"description":"Natural-language extraction prompt, e.g. Return the product price and currency. Omit for no prompt-based extraction. Not supported for Reddit feeds. AI extraction (ai_query, ai_extract_rules or formats=summary) adds 10 credits once per request, even when combined; other formats add none."},"ai_extract_rules":{"type":"string","maxLength":8192,"description":"JSON-encoded extraction instructions as a STRING, e.g. {\"price\":\"product price\",\"currency\":\"currency code\"}; not a nested JSON object. Omit for no rule-based extraction. Not supported for Reddit feeds. AI extraction (ai_query, ai_extract_rules or formats=summary) adds 10 credits once per request, even when combined; other formats add none."},"type":{"type":"string","enum":["image","pdf","pbf"],"description":"Non-HTML target format: image, pdf or pbf (Protocolbuffer Binary Format). Omit for normal page scraping. This selects a binary resource, not a screenshot or an output format conversion. No additional credits; selected rendering/proxy/AI options determine the request cost."},"challenge_mode":{"type":"boolean","description":"Separate rendering mode with its own browser and proxies; true/false, default false. Uses its own rendering/proxies; cannot combine with dynamic=true, premium=true or country. Ignored for Reddit feeds. When enabled: 10 base credits; AI adds 10."},"max_tokens":{"type":"integer","minimum":1,"maximum":1000000,"description":"Optional token limit, integer 1-1000000, estimated at ~4 characters per token. Changes the answer to JSON {content, truncated, estimated_tokens, max_tokens, content_type}; over the limit, content is the first max_tokens*4 characters and content_id/content_url/expires_at fetch the full page for 1 hour at no extra charge (same API key; on x402 the id alone). Omit for the unchanged raw response; binary types are never cut. Costs the same credits and x402 price as without it. No additional credits; selected rendering/proxy/AI options determine the request cost."},"async":{"type":"boolean","default":false,"description":"Return 202 with a scrape job immediately. Otherwise a scrape still running after 25 seconds returns 202. Default false; no extra credits."}},"required":["url"]}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"string","description":"Markdown response text for formats=markdown, not a JSON wrapper. HTML is the default; links/images formats return JSON and binary targets return bytes."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"Scrape a public webpage","description":"Scrape a public webpage for AI agents: convert a web page URL into markdown, HTML, links or images, with optional JavaScript rendering and AI extraction or summary. Supports web content retrieval for research and RAG; response format follows the requested options.","x-tool-slug":"scrape_webpage"},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/web-scraping-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/scrape"}}},"x-output-schema":{"anyOf":[{"type":"string"},{"type":["object","array"],"additionalProperties":true},{"type":"string","format":"binary"}]},"x-input-example":{"url":"https://example.com/","formats":"markdown"},"x-output-example":"# Example Domain\n\nThis domain is for use in documentation examples without needing permission. Avoid use in operations.\n\n[Learn more](https://iana.org/domains/example)","security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}},"X-FastAF-Truncated":{"description":"With max_tokens: whether content was cut.","schema":{"type":"string","enum":["true","false"]}}},"content":{"text/html":{"schema":{"type":"string"}},"text/markdown":{"schema":{"type":"string"},"example":"# Example Domain\n\nThis domain is for use in documentation examples without needing permission. Avoid use in operations.\n\n[Learn more](https://iana.org/domains/example)"},"text/plain":{"schema":{"type":"string"}},"application/json":{"schema":{"type":["object","array"],"additionalProperties":true}},"image/*":{"schema":{"type":"string","format":"binary"}},"application/pdf":{"schema":{"type":"string","format":"binary"}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"202":{"description":"Scrape accepted, no final charge or x402 settlement yet. Poll Location with the same account key, or X-Scrape-Token on x402.","headers":{"Location":{"schema":{"type":"string","format":"uri"}},"Retry-After":{"schema":{"type":"integer"}},"X-Scrape-Token":{"description":"x402 only: private bearer capability for polling. Never log or share.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["job_id","status","expires_at"],"properties":{"job_id":{"type":"string"},"status":{"type":"string","enum":["pending","done","failed"]},"expires_at":{"type":"string","format":"date-time"},"status_url":{"type":"string","format":"uri"},"result":{"type":"string"},"content_type":{"type":"string"},"error":{"type":"string"},"credits_used":{"type":"integer"}}}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Web page retrieval by URL with formats=markdown; dynamic and other optional rendering or extraction parameters select different modes.","examples":[{"url":"https://example.com/","formats":"markdown"}],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","description":"Required public HTTP(S) page URL. Zillow/eBay URLs are rejected without charge: use their dedicated endpoints. Booking defaults to rendering; Reddit uses a best-effort public feed (1 credit), ignoring rendering/proxy/wait/session/header options. Normal base cost: 1 credit; rendered Booking defaults cost 5. Other selected modes/AI can increase cost.","examples":["https://example.com/"]},"dynamic":{"type":"boolean","description":"Render JavaScript before extracting content; true/false. FastAF default false, except booking.com defaults true with wait=8000. Ignored for Reddit feeds. Base cost: 1 credit without rendering, 5 with rendering, or 25 with rendering plus premium/country; AI adds 10."},"js_rendering":{"type":"boolean","description":"Alias for dynamic with identical defaults and pricing. Boolean; cannot disagree with dynamic. Ignored for Reddit feeds. Base cost: 1 credit without rendering, 5 with rendering, or 25 with rendering plus premium/country; AI adds 10."},"premium":{"type":"boolean","description":"Use residential proxies; true/false, default false. Cannot combine true with challenge_mode. Ignored for Reddit feeds. Base cost with premium=true or any country: 10 credits, 25 with dynamic; AI adds 10."},"custom_headers":{"type":"boolean","description":"Boolean upstream header-forwarding flag, default false; NOT a header map. FastAF does not forward caller HTTP headers, cookies or Authorization to the target, so this cannot customize them. Ignored for Reddit feeds. No additional credits; selected rendering/proxy/AI options determine the request cost."},"wait":{"type":"integer","minimum":0,"maximum":35000,"description":"Extra browser loading delay in milliseconds, integer 0-35000, for dynamic rendering. Omitted: no explicit extra delay, except rendered booking.com defaults to 8000. Does not enable rendering; ignored for Reddit feeds. No additional credits; selected rendering/proxy/AI options determine the request cost."},"country":{"type":"string","maxLength":8192,"description":"Proxy exit country as a two-letter ISO 3166-1 code, e.g. us, gb or de. Omit for no country targeting. Selecting any country uses premium-tier pricing even if premium=false; incompatible with challenge_mode. Ignored for Reddit feeds. Base cost with premium=true or any country: 10 credits, 25 with dynamic; AI adds 10."},"session_number":{"type":"string","maxLength":8192,"description":"Reusable proxy session identifier, e.g. 12345. Repeat it to request the same proxy IP; expires after 60 seconds of inactivity. Omit to rotate normally. Ignored for Reddit feeds; not a FastAF login session. No additional credits; selected rendering/proxy/AI options determine the request cost."},"image":{"type":"boolean","description":"Enable fetching image URLs; true/false, default false. Not a screenshot: use /screenshot for captures, or formats=images to extract page image links. No additional credits; selected rendering/proxy/AI options determine the request cost."},"formats":{"type":"string","enum":["html","links","markdown","summary","images"],"description":"One output format: html (default), links, markdown, summary or images. summary is AI-generated; links/images extract page URLs. Reddit supports html/markdown only. AI extraction (ai_query, ai_extract_rules or formats=summary) adds 10 credits once per request, even when combined; other formats add none.","examples":["markdown"]},"ai_query":{"type":"string","maxLength":8192,"description":"Natural-language extraction prompt, e.g. Return the product price and currency. Omit for no prompt-based extraction. Not supported for Reddit feeds. AI extraction (ai_query, ai_extract_rules or formats=summary) adds 10 credits once per request, even when combined; other formats add none."},"ai_extract_rules":{"type":"string","maxLength":8192,"description":"JSON-encoded extraction instructions as a STRING, e.g. {\"price\":\"product price\",\"currency\":\"currency code\"}; not a nested JSON object. Omit for no rule-based extraction. Not supported for Reddit feeds. AI extraction (ai_query, ai_extract_rules or formats=summary) adds 10 credits once per request, even when combined; other formats add none."},"type":{"type":"string","enum":["image","pdf","pbf"],"description":"Non-HTML target format: image, pdf or pbf (Protocolbuffer Binary Format). Omit for normal page scraping. This selects a binary resource, not a screenshot or an output format conversion. No additional credits; selected rendering/proxy/AI options determine the request cost."},"challenge_mode":{"type":"boolean","description":"Separate rendering mode with its own browser and proxies; true/false, default false. Uses its own rendering/proxies; cannot combine with dynamic=true, premium=true or country. Ignored for Reddit feeds. When enabled: 10 base credits; AI adds 10."},"max_tokens":{"type":"integer","minimum":1,"maximum":1000000,"description":"Optional token limit, integer 1-1000000, estimated at ~4 characters per token. Changes the answer to JSON {content, truncated, estimated_tokens, max_tokens, content_type}; over the limit, content is the first max_tokens*4 characters and content_id/content_url/expires_at fetch the full page for 1 hour at no extra charge (same API key; on x402 the id alone). Omit for the unchanged raw response; binary types are never cut. Costs the same credits and x402 price as without it. No additional credits; selected rendering/proxy/AI options determine the request cost."},"async":{"type":"boolean","default":false,"description":"Return 202 with a scrape job immediately. Otherwise a scrape still running after 25 seconds returns 202. Default false; no extra credits."}},"required":["url"]},"example":{"url":"https://example.com/","formats":"markdown"}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}],"x-max-tokens-response":{"type":"object","description":"Answer when max_tokens is sent. Tokens are estimated at ~4 characters per token.","required":["content","truncated","estimated_tokens","max_tokens","content_type"],"properties":{"content":{"type":"string","description":"The page, or its first max_tokens*4 characters when truncated."},"truncated":{"type":"boolean"},"estimated_tokens":{"type":"integer","minimum":0,"description":"Estimated tokens of the whole page."},"max_tokens":{"type":"integer","minimum":1},"content_type":{"type":["string","null"],"description":"Content type of the full page."},"content_id":{"type":"string","pattern":"^[0-9a-f]{64}$","description":"When truncated: id of the stored full page."},"content_url":{"type":"string","format":"uri","description":"When truncated: GET it for the full page, free, for 60 minutes (keyed: same API key; x402: no payment, the id is the proof)."},"expires_at":{"type":"string","format":"date-time"},"message":{"type":"string","description":"Present when the full page could not be stored."}}}}},"/x402/v1/news":{"get":{"operationId":"x402GetNews","summary":"FastAF Google News Search","description":"News search API for AI agents: Google News results as JSON for a topic, company or person. Returns article titles, sources, timestamps, URLs and snippets when available for news monitoring and research, with country and language targeting. Provided by FastAF Google News Search. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send query parameters, not a JSON body. The PAYMENT-REQUIRED header quotes the fixed price of this endpoint; options that cost more than it (SERP advance_search, scrape with rendering plus premium proxies or AI extraction) return 400 options_need_api_key before payment and need an API key. Sign it with an x402 v2 client and retry the same URL with PAYMENT-SIGNATURE. Invalid parameters or blocked targets return 402 when unsigned, or 400 before payment verification/settlement when signed. Only successful calls are settled.","tags":["news","google","search"],"x-category":"news","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/news","description":"News search API for AI agents: Google News results as JSON for a topic, company or person. Returns article titles, sources, timestamps, URLs and snippets when available for news monitoring and research, with country and language targeting. Provided by FastAF Google News Search. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-news-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"query":"web scraping regulation","country":"us","language":"en"},"method":"GET"},"output":{"type":"json","example":{"news_results":[{"title":"Researchers discuss responsible public-web data collection","source":"Technology Review Daily","lastUpdated":"2 hours ago","snippet":"New research examines transparency and consent in public-web data collection.","url":"https://example.com/news/public-web-data"}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-news-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET"]},"queryParams":{"type":"object","description":"Google News keyword search with country and language targeting.","examples":[{"query":"web scraping regulation","country":"us","language":"en"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required Google News search text, e.g. renewable energy; supports Google search operators. No default. No option surcharge; 5 credits per successful request.","examples":["web scraping regulation"]},"results":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum results retained by FastAF, integer 1-100. Omit for the full returned page. Google supplies up to 10 per page; use page for more, not a larger results value. No option surcharge; 5 credits per successful request."},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 5 credits per successful request.","examples":["us"]},"page":{"type":"integer","minimum":0,"description":"Zero-based results page: 0 is the first page, 1 the second; non-negative integer, default 0. Each page is a separate request. No option surcharge; 5 credits per successful request."},"domain":{"type":"string","maxLength":8192,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No option surcharge; 5 credits per successful request."},"language":{"type":"string","maxLength":8192,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 5 credits per successful request.","examples":["en"]},"lr":{"type":"string","maxLength":8192,"description":"Document-language filter: lang_en or a pipe-separated list such as lang_en|lang_fr. Omitted: no explicit language restriction. No option surcharge; 5 credits per successful request."},"uule":{"type":"string","maxLength":8192,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No option surcharge; 5 credits per successful request."},"tbs":{"type":"string","maxLength":8192,"description":"Google filter expression, e.g. qdr:d for the past day or qdr:w for the past week. Omitted: no explicit time/advanced filter. No option surcharge; 5 credits per successful request."},"safe":{"type":"string","maxLength":8192,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No option surcharge; 5 credits per successful request."},"nfpr":{"type":"string","maxLength":8192,"description":"Spelling correction: string 1 excludes automatically corrected queries; 0 allows them (default 0). No option surcharge; 5 credits per successful request."},"html":{"type":"boolean","description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 5 credits per successful request."}},"required":["query"]}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"news_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"source":{"type":"string"},"lastUpdated":{"type":"string"},"snippet":{"type":"string"},"url":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google News JSON. news_results contains title, source, lastUpdated, url and snippet when available; timestamps may be relative text."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF Google News Search","description":"News search API for AI agents: Google News results as JSON for a topic, company or person. Returns article titles, sources, timestamps, URLs and snippets when available for news monitoring and research, with country and language targeting."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-news-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/news"}}},"x-output-schema":{"anyOf":[{"type":"object","properties":{"news_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"source":{"type":"string"},"lastUpdated":{"type":"string"},"snippet":{"type":"string"},"url":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google News JSON. news_results contains title, source, lastUpdated, url and snippet when available; timestamps may be relative text."},{"type":"string"}]},"x-input-example":{"query":"web scraping regulation","country":"us","language":"en"},"x-output-example":{"news_results":[{"title":"Researchers discuss responsible public-web data collection","source":"Technology Review Daily","lastUpdated":"2 hours ago","snippet":"New research examines transparency and consent in public-web data collection.","url":"https://example.com/news/public-web-data"}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"parameters":[{"name":"query","in":"query","required":true,"description":"Required Google News search text, e.g. renewable energy; supports Google search operators. No default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192,"example":"web scraping regulation"},"example":"web scraping regulation"},{"name":"results","in":"query","required":false,"description":"Maximum results retained by FastAF, integer 1-100. Omit for the full returned page. Google supplies up to 10 per page; use page for more, not a larger results value. No option surcharge; 5 credits per successful request.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"country","in":"query","required":false,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192,"example":"us"},"example":"us"},{"name":"page","in":"query","required":false,"description":"Zero-based results page: 0 is the first page, 1 the second; non-negative integer, default 0. Each page is a separate request. No option surcharge; 5 credits per successful request.","schema":{"type":"integer","minimum":0}},{"name":"domain","in":"query","required":false,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"language","in":"query","required":false,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192,"example":"en"},"example":"en"},{"name":"lr","in":"query","required":false,"description":"Document-language filter: lang_en or a pipe-separated list such as lang_en|lang_fr. Omitted: no explicit language restriction. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"uule","in":"query","required":false,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"tbs","in":"query","required":false,"description":"Google filter expression, e.g. qdr:d for the past day or qdr:w for the past week. Omitted: no explicit time/advanced filter. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"safe","in":"query","required":false,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"nfpr","in":"query","required":false,"description":"Spelling correction: string 1 excludes automatically corrected queries; 0 allows them (default 0). No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"html","in":"query","required":false,"description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 5 credits per successful request.","schema":{"type":"boolean"}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}],"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"news_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"source":{"type":"string"},"lastUpdated":{"type":"string"},"snippet":{"type":"string"},"url":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google News JSON. news_results contains title, source, lastUpdated, url and snippet when available; timestamps may be relative text."},"example":{"news_results":[{"title":"Researchers discuss responsible public-web data collection","source":"Technology Review Daily","lastUpdated":"2 hours ago","snippet":"New research examines transparency and consent in public-web data collection.","url":"https://example.com/news/public-web-data"}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}}},"post":{"operationId":"x402PostNews","summary":"FastAF Google News Search","description":"News search API for AI agents: Google News results as JSON for a topic, company or person. Returns article titles, sources, timestamps, URLs and snippets when available for news monitoring and research, with country and language targeting. Provided by FastAF Google News Search. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send a JSON body. An empty unpaid probe returns 402; a paid retry requires valid input. Only successful calls settle.","tags":["news","google","search"],"x-category":"news","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/news","description":"News search API for AI agents: Google News results as JSON for a topic, company or person. Returns article titles, sources, timestamps, URLs and snippets when available for news monitoring and research, with country and language targeting. Provided by FastAF Google News Search. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-news-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"query":"web scraping regulation","country":"us","language":"en"},"method":"POST"},"output":{"type":"json","example":{"news_results":[{"title":"Researchers discuss responsible public-web data collection","source":"Technology Review Daily","lastUpdated":"2 hours ago","snippet":"New research examines transparency and consent in public-web data collection.","url":"https://example.com/news/public-web-data"}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-news-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","description":"Google News keyword search with country and language targeting.","examples":[{"query":"web scraping regulation","country":"us","language":"en"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required Google News search text, e.g. renewable energy; supports Google search operators. No default. No option surcharge; 5 credits per successful request.","examples":["web scraping regulation"]},"results":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum results retained by FastAF, integer 1-100. Omit for the full returned page. Google supplies up to 10 per page; use page for more, not a larger results value. No option surcharge; 5 credits per successful request."},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 5 credits per successful request.","examples":["us"]},"page":{"type":"integer","minimum":0,"description":"Zero-based results page: 0 is the first page, 1 the second; non-negative integer, default 0. Each page is a separate request. No option surcharge; 5 credits per successful request."},"domain":{"type":"string","maxLength":8192,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No option surcharge; 5 credits per successful request."},"language":{"type":"string","maxLength":8192,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 5 credits per successful request.","examples":["en"]},"lr":{"type":"string","maxLength":8192,"description":"Document-language filter: lang_en or a pipe-separated list such as lang_en|lang_fr. Omitted: no explicit language restriction. No option surcharge; 5 credits per successful request."},"uule":{"type":"string","maxLength":8192,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No option surcharge; 5 credits per successful request."},"tbs":{"type":"string","maxLength":8192,"description":"Google filter expression, e.g. qdr:d for the past day or qdr:w for the past week. Omitted: no explicit time/advanced filter. No option surcharge; 5 credits per successful request."},"safe":{"type":"string","maxLength":8192,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No option surcharge; 5 credits per successful request."},"nfpr":{"type":"string","maxLength":8192,"description":"Spelling correction: string 1 excludes automatically corrected queries; 0 allows them (default 0). No option surcharge; 5 credits per successful request."},"html":{"type":"boolean","description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 5 credits per successful request."}},"required":["query"]}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"news_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"source":{"type":"string"},"lastUpdated":{"type":"string"},"snippet":{"type":"string"},"url":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google News JSON. news_results contains title, source, lastUpdated, url and snippet when available; timestamps may be relative text."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF Google News Search","description":"News search API for AI agents: Google News results as JSON for a topic, company or person. Returns article titles, sources, timestamps, URLs and snippets when available for news monitoring and research, with country and language targeting."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-news-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/news"}}},"x-output-schema":{"anyOf":[{"type":"object","properties":{"news_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"source":{"type":"string"},"lastUpdated":{"type":"string"},"snippet":{"type":"string"},"url":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google News JSON. news_results contains title, source, lastUpdated, url and snippet when available; timestamps may be relative text."},{"type":"string"}]},"x-input-example":{"query":"web scraping regulation","country":"us","language":"en"},"x-output-example":{"news_results":[{"title":"Researchers discuss responsible public-web data collection","source":"Technology Review Daily","lastUpdated":"2 hours ago","snippet":"New research examines transparency and consent in public-web data collection.","url":"https://example.com/news/public-web-data"}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"news_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"source":{"type":"string"},"lastUpdated":{"type":"string"},"snippet":{"type":"string"},"url":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google News JSON. news_results contains title, source, lastUpdated, url and snippet when available; timestamps may be relative text."},"example":{"news_results":[{"title":"Researchers discuss responsible public-web data collection","source":"Technology Review Daily","lastUpdated":"2 hours ago","snippet":"New research examines transparency and consent in public-web data collection.","url":"https://example.com/news/public-web-data"}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Google News keyword search with country and language targeting.","examples":[{"query":"web scraping regulation","country":"us","language":"en"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required Google News search text, e.g. renewable energy; supports Google search operators. No default. No option surcharge; 5 credits per successful request.","examples":["web scraping regulation"]},"results":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum results retained by FastAF, integer 1-100. Omit for the full returned page. Google supplies up to 10 per page; use page for more, not a larger results value. No option surcharge; 5 credits per successful request."},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 5 credits per successful request.","examples":["us"]},"page":{"type":"integer","minimum":0,"description":"Zero-based results page: 0 is the first page, 1 the second; non-negative integer, default 0. Each page is a separate request. No option surcharge; 5 credits per successful request."},"domain":{"type":"string","maxLength":8192,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No option surcharge; 5 credits per successful request."},"language":{"type":"string","maxLength":8192,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 5 credits per successful request.","examples":["en"]},"lr":{"type":"string","maxLength":8192,"description":"Document-language filter: lang_en or a pipe-separated list such as lang_en|lang_fr. Omitted: no explicit language restriction. No option surcharge; 5 credits per successful request."},"uule":{"type":"string","maxLength":8192,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No option surcharge; 5 credits per successful request."},"tbs":{"type":"string","maxLength":8192,"description":"Google filter expression, e.g. qdr:d for the past day or qdr:w for the past week. Omitted: no explicit time/advanced filter. No option surcharge; 5 credits per successful request."},"safe":{"type":"string","maxLength":8192,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No option surcharge; 5 credits per successful request."},"nfpr":{"type":"string","maxLength":8192,"description":"Spelling correction: string 1 excludes automatically corrected queries; 0 allows them (default 0). No option surcharge; 5 credits per successful request."},"html":{"type":"boolean","description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 5 credits per successful request."}},"required":["query"]},"example":{"query":"web scraping regulation","country":"us","language":"en"}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}]}},"/x402/v1/shopping":{"get":{"operationId":"x402GetShopping","summary":"FastAF Google Shopping Search","description":"Product price comparison and shopping search API for AI agents: Google Shopping results as JSON with titles, prices, merchants, product links and ratings when available. Supports keyword search and country targeting for ecommerce research. Provided by FastAF Google Shopping Search. Price: $0.010000 USDC fixed per successful call. Docs: https://fastaf.co Send query parameters, not a JSON body. The PAYMENT-REQUIRED header quotes the fixed price of this endpoint; options that cost more than it (SERP advance_search, scrape with rendering plus premium proxies or AI extraction) return 400 options_need_api_key before payment and need an API key. Sign it with an x402 v2 client and retry the same URL with PAYMENT-SIGNATURE. Invalid parameters or blocked targets return 402 when unsigned, or 400 before payment verification/settlement when signed. Only successful calls are settled.","tags":["ecommerce","shopping","google","prices"],"x-category":"ecommerce","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/shopping","description":"Product price comparison and shopping search API for AI agents: Google Shopping results as JSON with titles, prices, merchants, product links and ratings when available. Supports keyword search and country targeting for ecommerce research. Provided by FastAF Google Shopping Search. Price: $0.010000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-shopping-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"query":"running shoes","country":"us","language":"en"},"method":"GET"},"output":{"type":"json","example":{"shopping_results":[{"title":"Road running shoes, size 9","price":"$89.00","source":"City Sports","rating":4.5,"reviews":86,"link":"https://example.com/products/road-running-shoes"}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-shopping-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET"]},"queryParams":{"type":"object","description":"Google Shopping keyword search with country and language targeting.","examples":[{"query":"running shoes","country":"us","language":"en"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required Google Shopping search text or complete Google search URL, e.g. running shoes. No default. No option surcharge; 10 credits per successful request.","examples":["running shoes"]},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 10 credits per successful request.","examples":["us"]},"page":{"type":"integer","minimum":0,"description":"Zero-based results page: 0 is the first page, 1 the second; non-negative integer, default 0. Each page is a separate request. No option surcharge; 10 credits per successful request."},"domain":{"type":"string","maxLength":8192,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No option surcharge; 10 credits per successful request."},"language":{"type":"string","maxLength":8192,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 10 credits per successful request.","examples":["en"]},"lr":{"type":"string","maxLength":8192,"description":"Document-language filter: lang_en or a pipe-separated list such as lang_en|lang_fr. Omitted: no explicit language restriction. No option surcharge; 10 credits per successful request."},"shoprs":{"type":"string","maxLength":8192,"description":"Opaque Google Shopping filter ID copied from a Google URL; pair with query text including the selected filter label. Omit for no explicit shopping filter. No option surcharge; 10 credits per successful request."},"uule":{"type":"string","maxLength":8192,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No option surcharge; 10 credits per successful request."},"tbs":{"type":"string","maxLength":8192,"description":"Google filter expression, e.g. qdr:d for the past day or qdr:w for the past week. Omitted: no explicit time/advanced filter. No option surcharge; 10 credits per successful request."},"safe":{"type":"string","maxLength":8192,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No option surcharge; 10 credits per successful request."},"nfpr":{"type":"string","maxLength":8192,"description":"Spelling correction: string 1 excludes automatically corrected queries; 0 allows them (default 0). No option surcharge; 10 credits per successful request."},"html":{"type":"boolean","description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 10 credits per successful request."}},"required":["query"]}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"shopping_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"price":{"type":"string"},"source":{"type":"string"},"rating":{"type":"number"},"reviews":{"type":"number"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Shopping JSON. shopping_results contains titles, displayed prices, merchant source, product links, ratings and reviews when available."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF Google Shopping Search","description":"Product price comparison and shopping search API for AI agents: Google Shopping results as JSON with titles, prices, merchants, product links and ratings when available. Supports keyword search and country targeting for ecommerce research."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-shopping-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/shopping"}}},"x-output-schema":{"anyOf":[{"type":"object","properties":{"shopping_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"price":{"type":"string"},"source":{"type":"string"},"rating":{"type":"number"},"reviews":{"type":"number"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Shopping JSON. shopping_results contains titles, displayed prices, merchant source, product links, ratings and reviews when available."},{"type":"string"}]},"x-input-example":{"query":"running shoes","country":"us","language":"en"},"x-output-example":{"shopping_results":[{"title":"Road running shoes, size 9","price":"$89.00","source":"City Sports","rating":4.5,"reviews":86,"link":"https://example.com/products/road-running-shoes"}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.010000"}},"parameters":[{"name":"query","in":"query","required":true,"description":"Required Google Shopping search text or complete Google search URL, e.g. running shoes. No default. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192,"example":"running shoes"},"example":"running shoes"},{"name":"country","in":"query","required":false,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192,"example":"us"},"example":"us"},{"name":"page","in":"query","required":false,"description":"Zero-based results page: 0 is the first page, 1 the second; non-negative integer, default 0. Each page is a separate request. No option surcharge; 10 credits per successful request.","schema":{"type":"integer","minimum":0}},{"name":"domain","in":"query","required":false,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"language","in":"query","required":false,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192,"example":"en"},"example":"en"},{"name":"lr","in":"query","required":false,"description":"Document-language filter: lang_en or a pipe-separated list such as lang_en|lang_fr. Omitted: no explicit language restriction. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"shoprs","in":"query","required":false,"description":"Opaque Google Shopping filter ID copied from a Google URL; pair with query text including the selected filter label. Omit for no explicit shopping filter. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"uule","in":"query","required":false,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"tbs","in":"query","required":false,"description":"Google filter expression, e.g. qdr:d for the past day or qdr:w for the past week. Omitted: no explicit time/advanced filter. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"safe","in":"query","required":false,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"nfpr","in":"query","required":false,"description":"Spelling correction: string 1 excludes automatically corrected queries; 0 allows them (default 0). No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"html","in":"query","required":false,"description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 10 credits per successful request.","schema":{"type":"boolean"}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}],"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"shopping_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"price":{"type":"string"},"source":{"type":"string"},"rating":{"type":"number"},"reviews":{"type":"number"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Shopping JSON. shopping_results contains titles, displayed prices, merchant source, product links, ratings and reviews when available."},"example":{"shopping_results":[{"title":"Road running shoes, size 9","price":"$89.00","source":"City Sports","rating":4.5,"reviews":86,"link":"https://example.com/products/road-running-shoes"}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}}},"post":{"operationId":"x402PostShopping","summary":"FastAF Google Shopping Search","description":"Product price comparison and shopping search API for AI agents: Google Shopping results as JSON with titles, prices, merchants, product links and ratings when available. Supports keyword search and country targeting for ecommerce research. Provided by FastAF Google Shopping Search. Price: $0.010000 USDC fixed per successful call. Docs: https://fastaf.co Send a JSON body. An empty unpaid probe returns 402; a paid retry requires valid input. Only successful calls settle.","tags":["ecommerce","shopping","google","prices"],"x-category":"ecommerce","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/shopping","description":"Product price comparison and shopping search API for AI agents: Google Shopping results as JSON with titles, prices, merchants, product links and ratings when available. Supports keyword search and country targeting for ecommerce research. Provided by FastAF Google Shopping Search. Price: $0.010000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-shopping-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"query":"running shoes","country":"us","language":"en"},"method":"POST"},"output":{"type":"json","example":{"shopping_results":[{"title":"Road running shoes, size 9","price":"$89.00","source":"City Sports","rating":4.5,"reviews":86,"link":"https://example.com/products/road-running-shoes"}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-shopping-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","description":"Google Shopping keyword search with country and language targeting.","examples":[{"query":"running shoes","country":"us","language":"en"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required Google Shopping search text or complete Google search URL, e.g. running shoes. No default. No option surcharge; 10 credits per successful request.","examples":["running shoes"]},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 10 credits per successful request.","examples":["us"]},"page":{"type":"integer","minimum":0,"description":"Zero-based results page: 0 is the first page, 1 the second; non-negative integer, default 0. Each page is a separate request. No option surcharge; 10 credits per successful request."},"domain":{"type":"string","maxLength":8192,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No option surcharge; 10 credits per successful request."},"language":{"type":"string","maxLength":8192,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 10 credits per successful request.","examples":["en"]},"lr":{"type":"string","maxLength":8192,"description":"Document-language filter: lang_en or a pipe-separated list such as lang_en|lang_fr. Omitted: no explicit language restriction. No option surcharge; 10 credits per successful request."},"shoprs":{"type":"string","maxLength":8192,"description":"Opaque Google Shopping filter ID copied from a Google URL; pair with query text including the selected filter label. Omit for no explicit shopping filter. No option surcharge; 10 credits per successful request."},"uule":{"type":"string","maxLength":8192,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No option surcharge; 10 credits per successful request."},"tbs":{"type":"string","maxLength":8192,"description":"Google filter expression, e.g. qdr:d for the past day or qdr:w for the past week. Omitted: no explicit time/advanced filter. No option surcharge; 10 credits per successful request."},"safe":{"type":"string","maxLength":8192,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No option surcharge; 10 credits per successful request."},"nfpr":{"type":"string","maxLength":8192,"description":"Spelling correction: string 1 excludes automatically corrected queries; 0 allows them (default 0). No option surcharge; 10 credits per successful request."},"html":{"type":"boolean","description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 10 credits per successful request."}},"required":["query"]}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"shopping_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"price":{"type":"string"},"source":{"type":"string"},"rating":{"type":"number"},"reviews":{"type":"number"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Shopping JSON. shopping_results contains titles, displayed prices, merchant source, product links, ratings and reviews when available."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF Google Shopping Search","description":"Product price comparison and shopping search API for AI agents: Google Shopping results as JSON with titles, prices, merchants, product links and ratings when available. Supports keyword search and country targeting for ecommerce research."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-shopping-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/shopping"}}},"x-output-schema":{"anyOf":[{"type":"object","properties":{"shopping_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"price":{"type":"string"},"source":{"type":"string"},"rating":{"type":"number"},"reviews":{"type":"number"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Shopping JSON. shopping_results contains titles, displayed prices, merchant source, product links, ratings and reviews when available."},{"type":"string"}]},"x-input-example":{"query":"running shoes","country":"us","language":"en"},"x-output-example":{"shopping_results":[{"title":"Road running shoes, size 9","price":"$89.00","source":"City Sports","rating":4.5,"reviews":86,"link":"https://example.com/products/road-running-shoes"}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.010000"}},"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"shopping_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"price":{"type":"string"},"source":{"type":"string"},"rating":{"type":"number"},"reviews":{"type":"number"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Shopping JSON. shopping_results contains titles, displayed prices, merchant source, product links, ratings and reviews when available."},"example":{"shopping_results":[{"title":"Road running shoes, size 9","price":"$89.00","source":"City Sports","rating":4.5,"reviews":86,"link":"https://example.com/products/road-running-shoes"}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Google Shopping keyword search with country and language targeting.","examples":[{"query":"running shoes","country":"us","language":"en"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required Google Shopping search text or complete Google search URL, e.g. running shoes. No default. No option surcharge; 10 credits per successful request.","examples":["running shoes"]},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 10 credits per successful request.","examples":["us"]},"page":{"type":"integer","minimum":0,"description":"Zero-based results page: 0 is the first page, 1 the second; non-negative integer, default 0. Each page is a separate request. No option surcharge; 10 credits per successful request."},"domain":{"type":"string","maxLength":8192,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No option surcharge; 10 credits per successful request."},"language":{"type":"string","maxLength":8192,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 10 credits per successful request.","examples":["en"]},"lr":{"type":"string","maxLength":8192,"description":"Document-language filter: lang_en or a pipe-separated list such as lang_en|lang_fr. Omitted: no explicit language restriction. No option surcharge; 10 credits per successful request."},"shoprs":{"type":"string","maxLength":8192,"description":"Opaque Google Shopping filter ID copied from a Google URL; pair with query text including the selected filter label. Omit for no explicit shopping filter. No option surcharge; 10 credits per successful request."},"uule":{"type":"string","maxLength":8192,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No option surcharge; 10 credits per successful request."},"tbs":{"type":"string","maxLength":8192,"description":"Google filter expression, e.g. qdr:d for the past day or qdr:w for the past week. Omitted: no explicit time/advanced filter. No option surcharge; 10 credits per successful request."},"safe":{"type":"string","maxLength":8192,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No option surcharge; 10 credits per successful request."},"nfpr":{"type":"string","maxLength":8192,"description":"Spelling correction: string 1 excludes automatically corrected queries; 0 allows them (default 0). No option surcharge; 10 credits per successful request."},"html":{"type":"boolean","description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 10 credits per successful request."}},"required":["query"]},"example":{"query":"running shoes","country":"us","language":"en"}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}]}},"/x402/v1/scholar":{"get":{"operationId":"x402GetScholar","summary":"FastAF Google Scholar Search","description":"Academic paper and citation search API for AI agents: Google Scholar results as JSON with titles, publication details, snippets, paper links and cited-by counts when available. Supports topic queries, citation lookup and year filters for literature research. Provided by FastAF Google Scholar Search. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send query parameters, not a JSON body. The PAYMENT-REQUIRED header quotes the fixed price of this endpoint; options that cost more than it (SERP advance_search, scrape with rendering plus premium proxies or AI extraction) return 400 options_need_api_key before payment and need an API key. Sign it with an x402 v2 client and retry the same URL with PAYMENT-SIGNATURE. Invalid parameters or blocked targets return 402 when unsigned, or 400 before payment verification/settlement when signed. Only successful calls are settled.","tags":["research","scholar","papers","citations"],"x-category":"research","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/scholar","description":"Academic paper and citation search API for AI agents: Google Scholar results as JSON with titles, publication details, snippets, paper links and cited-by counts when available. Supports topic queries, citation lookup and year filters for literature research. Provided by FastAF Google Scholar Search. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-scholar-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"query":"retrieval augmented generation","language":"en","as_ylo":"2020","as_yhi":"2026"},"method":"GET"},"output":{"type":"json","example":{"scholar_results":[{"title":"Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks","displayed_link":"P Lewis et al. - NeurIPS, 2020","snippet":"A retrieval-augmented model combines a language model with a searchable document index.","inline_links":{"cited_by":{"total":"Cited by 120","cites_id":"1234567890123456789"}},"title_link":"https://arxiv.org/abs/2005.11401"}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-scholar-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET"]},"queryParams":{"type":"object","description":"Academic topic search with language and publication-year filters; citation or cluster IDs can replace query.","examples":[{"query":"retrieval augmented generation","language":"en","as_ylo":"2020","as_yhi":"2026"}],"additionalProperties":false,"properties":{"html":{"type":"boolean","description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 5 credits per successful request."},"query":{"type":"string","maxLength":8192,"description":"Scholar search text, supporting author: and source:. Required unless cites or cluster is supplied. May refine cites results; cannot combine with cluster. No default. No option surcharge; 5 credits per successful request.","examples":["retrieval augmented generation"]},"language":{"type":"string","maxLength":8192,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 5 credits per successful request.","examples":["en"]},"lr":{"type":"string","maxLength":8192,"description":"Document-language filter: lang_en or a pipe-separated list such as lang_en|lang_fr. Omitted: no explicit language restriction. No option surcharge; 5 credits per successful request."},"cites":{"type":"string","maxLength":8192,"description":"Scholar article ID for a Cited by lookup, copied from a Scholar result. May combine with query to filter citing papers, but not cluster. No default. No option surcharge; 5 credits per successful request."},"as_ylo":{"type":"string","maxLength":8192,"description":"Inclusive earliest publication year as a four-digit string, e.g. 2020. Omit for no lower year bound; may combine with as_yhi. No option surcharge; 5 credits per successful request.","examples":["2020"]},"as_yhi":{"type":"string","maxLength":8192,"description":"Inclusive latest publication year as a four-digit string, e.g. 2026. Omit for no upper year bound; may combine with as_ylo. No option surcharge; 5 credits per successful request.","examples":["2026"]},"scisbd":{"type":"string","maxLength":8192,"description":"Scholar result mode: string 1 requests abstract results, 0 all results. Omitted: source-default result mode. No option surcharge; 5 credits per successful request."},"cluster":{"type":"string","maxLength":8192,"description":"Scholar article cluster ID for an All versions lookup. Use instead of query/cites, never together; no default. No option surcharge; 5 credits per successful request."},"as_sdt":{"type":"string","maxLength":8192,"description":"Scholar search/filter codes: 0 excludes patents (default), 7 includes patents, 4 selects US case law. Court codes can follow 4, e.g. 4,33,192. No option surcharge; 5 credits per successful request."},"safe":{"type":"string","maxLength":8192,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No option surcharge; 5 credits per successful request."},"filter":{"type":"string","maxLength":8192,"description":"Duplicate/omitted-result filtering: string 1 enables it (default); 0 includes similar and normally omitted results. No option surcharge; 5 credits per successful request."},"as_vis":{"type":"string","maxLength":8192,"description":"Citation-only results: string 1 excludes them, 0 includes them (default 0). No option surcharge; 5 credits per successful request."},"as_rr":{"type":"string","maxLength":8192,"description":"Review-paper filter: string 1 returns review articles only, 0 all article types (default 0). No option surcharge; 5 credits per successful request."},"page":{"type":"integer","minimum":0,"description":"Zero-based results page: 0 is the first page, 1 the second; non-negative integer, default 0. Each page is a separate request. No option surcharge; 5 credits per successful request."},"results":{"type":"integer","minimum":1,"description":"Requested results per Scholar page, integer at least 1; omitted: source-default page size. Google may return fewer; not a count of separately billed requests. No option surcharge; 5 credits per successful request."}},"anyOf":[{"required":["query"]},{"required":["cites"]},{"required":["cluster"]}]}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"scholar_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"displayed_link":{"type":"string"},"snippet":{"type":"string"},"inline_links":{"type":"object","properties":{"cited_by":{"type":"object","properties":{"total":{"type":"string"},"cites_id":{"type":"string"}},"additionalProperties":true}},"additionalProperties":true},"title_link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Scholar JSON. scholar_results includes title_link, displayed_link publication text, snippet and inline_links.cited_by with a textual total and cites_id when available."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF Google Scholar Search","description":"Academic paper and citation search API for AI agents: Google Scholar results as JSON with titles, publication details, snippets, paper links and cited-by counts when available. Supports topic queries, citation lookup and year filters for literature research."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-scholar-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/scholar"}}},"x-output-schema":{"anyOf":[{"type":"object","properties":{"scholar_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"displayed_link":{"type":"string"},"snippet":{"type":"string"},"inline_links":{"type":"object","properties":{"cited_by":{"type":"object","properties":{"total":{"type":"string"},"cites_id":{"type":"string"}},"additionalProperties":true}},"additionalProperties":true},"title_link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Scholar JSON. scholar_results includes title_link, displayed_link publication text, snippet and inline_links.cited_by with a textual total and cites_id when available."},{"type":"string"}]},"x-input-example":{"query":"retrieval augmented generation","language":"en","as_ylo":"2020","as_yhi":"2026"},"x-output-example":{"scholar_results":[{"title":"Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks","displayed_link":"P Lewis et al. - NeurIPS, 2020","snippet":"A retrieval-augmented model combines a language model with a searchable document index.","inline_links":{"cited_by":{"total":"Cited by 120","cites_id":"1234567890123456789"}},"title_link":"https://arxiv.org/abs/2005.11401"}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"parameters":[{"name":"html","in":"query","required":false,"description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 5 credits per successful request.","schema":{"type":"boolean"}},{"name":"query","in":"query","required":false,"description":"Scholar search text, supporting author: and source:. Required unless cites or cluster is supplied. May refine cites results; cannot combine with cluster. No default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192,"example":"retrieval augmented generation"},"example":"retrieval augmented generation"},{"name":"language","in":"query","required":false,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192,"example":"en"},"example":"en"},{"name":"lr","in":"query","required":false,"description":"Document-language filter: lang_en or a pipe-separated list such as lang_en|lang_fr. Omitted: no explicit language restriction. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"cites","in":"query","required":false,"description":"Scholar article ID for a Cited by lookup, copied from a Scholar result. May combine with query to filter citing papers, but not cluster. No default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"as_ylo","in":"query","required":false,"description":"Inclusive earliest publication year as a four-digit string, e.g. 2020. Omit for no lower year bound; may combine with as_yhi. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192,"example":"2020"},"example":"2020"},{"name":"as_yhi","in":"query","required":false,"description":"Inclusive latest publication year as a four-digit string, e.g. 2026. Omit for no upper year bound; may combine with as_ylo. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192,"example":"2026"},"example":"2026"},{"name":"scisbd","in":"query","required":false,"description":"Scholar result mode: string 1 requests abstract results, 0 all results. Omitted: source-default result mode. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"cluster","in":"query","required":false,"description":"Scholar article cluster ID for an All versions lookup. Use instead of query/cites, never together; no default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"as_sdt","in":"query","required":false,"description":"Scholar search/filter codes: 0 excludes patents (default), 7 includes patents, 4 selects US case law. Court codes can follow 4, e.g. 4,33,192. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"safe","in":"query","required":false,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"filter","in":"query","required":false,"description":"Duplicate/omitted-result filtering: string 1 enables it (default); 0 includes similar and normally omitted results. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"as_vis","in":"query","required":false,"description":"Citation-only results: string 1 excludes them, 0 includes them (default 0). No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"as_rr","in":"query","required":false,"description":"Review-paper filter: string 1 returns review articles only, 0 all article types (default 0). No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"page","in":"query","required":false,"description":"Zero-based results page: 0 is the first page, 1 the second; non-negative integer, default 0. Each page is a separate request. No option surcharge; 5 credits per successful request.","schema":{"type":"integer","minimum":0}},{"name":"results","in":"query","required":false,"description":"Requested results per Scholar page, integer at least 1; omitted: source-default page size. Google may return fewer; not a count of separately billed requests. No option surcharge; 5 credits per successful request.","schema":{"type":"integer","minimum":1}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}],"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"scholar_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"displayed_link":{"type":"string"},"snippet":{"type":"string"},"inline_links":{"type":"object","properties":{"cited_by":{"type":"object","properties":{"total":{"type":"string"},"cites_id":{"type":"string"}},"additionalProperties":true}},"additionalProperties":true},"title_link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Scholar JSON. scholar_results includes title_link, displayed_link publication text, snippet and inline_links.cited_by with a textual total and cites_id when available."},"example":{"scholar_results":[{"title":"Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks","displayed_link":"P Lewis et al. - NeurIPS, 2020","snippet":"A retrieval-augmented model combines a language model with a searchable document index.","inline_links":{"cited_by":{"total":"Cited by 120","cites_id":"1234567890123456789"}},"title_link":"https://arxiv.org/abs/2005.11401"}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}}},"post":{"operationId":"x402PostScholar","summary":"FastAF Google Scholar Search","description":"Academic paper and citation search API for AI agents: Google Scholar results as JSON with titles, publication details, snippets, paper links and cited-by counts when available. Supports topic queries, citation lookup and year filters for literature research. Provided by FastAF Google Scholar Search. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send a JSON body. An empty unpaid probe returns 402; a paid retry requires valid input. Only successful calls settle.","tags":["research","scholar","papers","citations"],"x-category":"research","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/scholar","description":"Academic paper and citation search API for AI agents: Google Scholar results as JSON with titles, publication details, snippets, paper links and cited-by counts when available. Supports topic queries, citation lookup and year filters for literature research. Provided by FastAF Google Scholar Search. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-scholar-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"query":"retrieval augmented generation","language":"en","as_ylo":"2020","as_yhi":"2026"},"method":"POST"},"output":{"type":"json","example":{"scholar_results":[{"title":"Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks","displayed_link":"P Lewis et al. - NeurIPS, 2020","snippet":"A retrieval-augmented model combines a language model with a searchable document index.","inline_links":{"cited_by":{"total":"Cited by 120","cites_id":"1234567890123456789"}},"title_link":"https://arxiv.org/abs/2005.11401"}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-scholar-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","description":"Academic topic search with language and publication-year filters; citation or cluster IDs can replace query.","examples":[{"query":"retrieval augmented generation","language":"en","as_ylo":"2020","as_yhi":"2026"}],"additionalProperties":false,"properties":{"html":{"type":"boolean","description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 5 credits per successful request."},"query":{"type":"string","maxLength":8192,"description":"Scholar search text, supporting author: and source:. Required unless cites or cluster is supplied. May refine cites results; cannot combine with cluster. No default. No option surcharge; 5 credits per successful request.","examples":["retrieval augmented generation"]},"language":{"type":"string","maxLength":8192,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 5 credits per successful request.","examples":["en"]},"lr":{"type":"string","maxLength":8192,"description":"Document-language filter: lang_en or a pipe-separated list such as lang_en|lang_fr. Omitted: no explicit language restriction. No option surcharge; 5 credits per successful request."},"cites":{"type":"string","maxLength":8192,"description":"Scholar article ID for a Cited by lookup, copied from a Scholar result. May combine with query to filter citing papers, but not cluster. No default. No option surcharge; 5 credits per successful request."},"as_ylo":{"type":"string","maxLength":8192,"description":"Inclusive earliest publication year as a four-digit string, e.g. 2020. Omit for no lower year bound; may combine with as_yhi. No option surcharge; 5 credits per successful request.","examples":["2020"]},"as_yhi":{"type":"string","maxLength":8192,"description":"Inclusive latest publication year as a four-digit string, e.g. 2026. Omit for no upper year bound; may combine with as_ylo. No option surcharge; 5 credits per successful request.","examples":["2026"]},"scisbd":{"type":"string","maxLength":8192,"description":"Scholar result mode: string 1 requests abstract results, 0 all results. Omitted: source-default result mode. No option surcharge; 5 credits per successful request."},"cluster":{"type":"string","maxLength":8192,"description":"Scholar article cluster ID for an All versions lookup. Use instead of query/cites, never together; no default. No option surcharge; 5 credits per successful request."},"as_sdt":{"type":"string","maxLength":8192,"description":"Scholar search/filter codes: 0 excludes patents (default), 7 includes patents, 4 selects US case law. Court codes can follow 4, e.g. 4,33,192. No option surcharge; 5 credits per successful request."},"safe":{"type":"string","maxLength":8192,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No option surcharge; 5 credits per successful request."},"filter":{"type":"string","maxLength":8192,"description":"Duplicate/omitted-result filtering: string 1 enables it (default); 0 includes similar and normally omitted results. No option surcharge; 5 credits per successful request."},"as_vis":{"type":"string","maxLength":8192,"description":"Citation-only results: string 1 excludes them, 0 includes them (default 0). No option surcharge; 5 credits per successful request."},"as_rr":{"type":"string","maxLength":8192,"description":"Review-paper filter: string 1 returns review articles only, 0 all article types (default 0). No option surcharge; 5 credits per successful request."},"page":{"type":"integer","minimum":0,"description":"Zero-based results page: 0 is the first page, 1 the second; non-negative integer, default 0. Each page is a separate request. No option surcharge; 5 credits per successful request."},"results":{"type":"integer","minimum":1,"description":"Requested results per Scholar page, integer at least 1; omitted: source-default page size. Google may return fewer; not a count of separately billed requests. No option surcharge; 5 credits per successful request."}},"anyOf":[{"required":["query"]},{"required":["cites"]},{"required":["cluster"]}]}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"scholar_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"displayed_link":{"type":"string"},"snippet":{"type":"string"},"inline_links":{"type":"object","properties":{"cited_by":{"type":"object","properties":{"total":{"type":"string"},"cites_id":{"type":"string"}},"additionalProperties":true}},"additionalProperties":true},"title_link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Scholar JSON. scholar_results includes title_link, displayed_link publication text, snippet and inline_links.cited_by with a textual total and cites_id when available."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF Google Scholar Search","description":"Academic paper and citation search API for AI agents: Google Scholar results as JSON with titles, publication details, snippets, paper links and cited-by counts when available. Supports topic queries, citation lookup and year filters for literature research."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-scholar-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/scholar"}}},"x-output-schema":{"anyOf":[{"type":"object","properties":{"scholar_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"displayed_link":{"type":"string"},"snippet":{"type":"string"},"inline_links":{"type":"object","properties":{"cited_by":{"type":"object","properties":{"total":{"type":"string"},"cites_id":{"type":"string"}},"additionalProperties":true}},"additionalProperties":true},"title_link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Scholar JSON. scholar_results includes title_link, displayed_link publication text, snippet and inline_links.cited_by with a textual total and cites_id when available."},{"type":"string"}]},"x-input-example":{"query":"retrieval augmented generation","language":"en","as_ylo":"2020","as_yhi":"2026"},"x-output-example":{"scholar_results":[{"title":"Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks","displayed_link":"P Lewis et al. - NeurIPS, 2020","snippet":"A retrieval-augmented model combines a language model with a searchable document index.","inline_links":{"cited_by":{"total":"Cited by 120","cites_id":"1234567890123456789"}},"title_link":"https://arxiv.org/abs/2005.11401"}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"scholar_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"displayed_link":{"type":"string"},"snippet":{"type":"string"},"inline_links":{"type":"object","properties":{"cited_by":{"type":"object","properties":{"total":{"type":"string"},"cites_id":{"type":"string"}},"additionalProperties":true}},"additionalProperties":true},"title_link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Scholar JSON. scholar_results includes title_link, displayed_link publication text, snippet and inline_links.cited_by with a textual total and cites_id when available."},"example":{"scholar_results":[{"title":"Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks","displayed_link":"P Lewis et al. - NeurIPS, 2020","snippet":"A retrieval-augmented model combines a language model with a searchable document index.","inline_links":{"cited_by":{"total":"Cited by 120","cites_id":"1234567890123456789"}},"title_link":"https://arxiv.org/abs/2005.11401"}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Academic topic search with language and publication-year filters; citation or cluster IDs can replace query.","examples":[{"query":"retrieval augmented generation","language":"en","as_ylo":"2020","as_yhi":"2026"}],"additionalProperties":false,"properties":{"html":{"type":"boolean","description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 5 credits per successful request."},"query":{"type":"string","maxLength":8192,"description":"Scholar search text, supporting author: and source:. Required unless cites or cluster is supplied. May refine cites results; cannot combine with cluster. No default. No option surcharge; 5 credits per successful request.","examples":["retrieval augmented generation"]},"language":{"type":"string","maxLength":8192,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 5 credits per successful request.","examples":["en"]},"lr":{"type":"string","maxLength":8192,"description":"Document-language filter: lang_en or a pipe-separated list such as lang_en|lang_fr. Omitted: no explicit language restriction. No option surcharge; 5 credits per successful request."},"cites":{"type":"string","maxLength":8192,"description":"Scholar article ID for a Cited by lookup, copied from a Scholar result. May combine with query to filter citing papers, but not cluster. No default. No option surcharge; 5 credits per successful request."},"as_ylo":{"type":"string","maxLength":8192,"description":"Inclusive earliest publication year as a four-digit string, e.g. 2020. Omit for no lower year bound; may combine with as_yhi. No option surcharge; 5 credits per successful request.","examples":["2020"]},"as_yhi":{"type":"string","maxLength":8192,"description":"Inclusive latest publication year as a four-digit string, e.g. 2026. Omit for no upper year bound; may combine with as_ylo. No option surcharge; 5 credits per successful request.","examples":["2026"]},"scisbd":{"type":"string","maxLength":8192,"description":"Scholar result mode: string 1 requests abstract results, 0 all results. Omitted: source-default result mode. No option surcharge; 5 credits per successful request."},"cluster":{"type":"string","maxLength":8192,"description":"Scholar article cluster ID for an All versions lookup. Use instead of query/cites, never together; no default. No option surcharge; 5 credits per successful request."},"as_sdt":{"type":"string","maxLength":8192,"description":"Scholar search/filter codes: 0 excludes patents (default), 7 includes patents, 4 selects US case law. Court codes can follow 4, e.g. 4,33,192. No option surcharge; 5 credits per successful request."},"safe":{"type":"string","maxLength":8192,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No option surcharge; 5 credits per successful request."},"filter":{"type":"string","maxLength":8192,"description":"Duplicate/omitted-result filtering: string 1 enables it (default); 0 includes similar and normally omitted results. No option surcharge; 5 credits per successful request."},"as_vis":{"type":"string","maxLength":8192,"description":"Citation-only results: string 1 excludes them, 0 includes them (default 0). No option surcharge; 5 credits per successful request."},"as_rr":{"type":"string","maxLength":8192,"description":"Review-paper filter: string 1 returns review articles only, 0 all article types (default 0). No option surcharge; 5 credits per successful request."},"page":{"type":"integer","minimum":0,"description":"Zero-based results page: 0 is the first page, 1 the second; non-negative integer, default 0. Each page is a separate request. No option surcharge; 5 credits per successful request."},"results":{"type":"integer","minimum":1,"description":"Requested results per Scholar page, integer at least 1; omitted: source-default page size. Google may return fewer; not a count of separately billed requests. No option surcharge; 5 credits per successful request."}},"anyOf":[{"required":["query"]},{"required":["cites"]},{"required":["cluster"]}]},"example":{"query":"retrieval augmented generation","language":"en","as_ylo":"2020","as_yhi":"2026"}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}]}},"/x402/v1/jobs":{"get":{"operationId":"x402GetJobs","summary":"FastAF Google Jobs Search","description":"Job search API for AI agents: Google Jobs listings as JSON for a role, company or location. Returns job titles, employers, locations, posting details and application links when available for hiring research and job discovery. Provided by FastAF Google Jobs Search. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send query parameters, not a JSON body. The PAYMENT-REQUIRED header quotes the fixed price of this endpoint; options that cost more than it (SERP advance_search, scrape with rendering plus premium proxies or AI extraction) return 400 options_need_api_key before payment and need an API key. Sign it with an x402 v2 client and retry the same URL with PAYMENT-SIGNATURE. Invalid parameters or blocked targets return 402 when unsigned, or 400 before payment verification/settlement when signed. Only successful calls are settled.","tags":["jobs","google","hiring"],"x-category":"jobs","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/jobs","description":"Job search API for AI agents: Google Jobs listings as JSON for a role, company or location. Returns job titles, employers, locations, posting details and application links when available for hiring research and job discovery. Provided by FastAF Google Jobs Search. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-jobs-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"query":"product manager jobs new york","country":"us","language":"en"},"method":"GET"},"output":{"type":"json","example":{"jobs_results":[{"title":"Product Manager","company_name":"Northstar Analytics","location":"New York, NY","extensions":["Full-time","Posted 2 days ago"],"apply_links":[{"title":"Apply","link":"https://example.com/careers/product-manager"}]}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-jobs-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET"]},"queryParams":{"type":"object","description":"Google Jobs keyword search with country and language targeting; the query can include role and location.","examples":[{"query":"product manager jobs new york","country":"us","language":"en"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required job search text, e.g. software engineer in Austin. No default. No option surcharge; 5 credits per successful request.","examples":["product manager jobs new york"]},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 5 credits per successful request.","examples":["us"]},"language":{"type":"string","maxLength":8192,"description":"Google Jobs result language/locale, e.g. en_us; upstream default en_us. No option surcharge; 5 credits per successful request.","examples":["en"]},"uule":{"type":"string","maxLength":8192,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No option surcharge; 5 credits per successful request."},"domain":{"type":"string","maxLength":8192,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No option surcharge; 5 credits per successful request."},"next_page_token":{"type":"string","maxLength":8192,"description":"Opaque continuation token from the previous jobs response. Omit for the first page; keep the original query/filters. Each page is a separate request. No option surcharge; 5 credits per successful request."},"chips":{"type":"string","maxLength":8192,"description":"Google Jobs filter expression copied from the search page, e.g. employment_type:FULLTIME. Omitted: no extra chip filter. No option surcharge; 5 credits per successful request."},"lrad":{"type":"string","maxLength":8192,"description":"Google Jobs radius value copied from a Google Jobs URL. Passed through as a string; upstream documents no unit or range. Omit for source-default radius. No option surcharge; 5 credits per successful request."},"ltype":{"type":"string","maxLength":8192,"description":"Work-from-home filter token copied from a Google Jobs URL; upstream publishes no fixed value list. Omitted: no explicit work-from-home filter. No option surcharge; 5 credits per successful request."},"uds":{"type":"string","maxLength":8192,"description":"Opaque Google results-filter token copied from a Google search URL. Omitted: no extra token filter; do not invent a token. No option surcharge; 5 credits per successful request."}},"required":["query"]}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"jobs_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"company_name":{"type":"string"},"location":{"type":"string"},"extensions":{"type":"array","items":{"type":"string"}},"apply_links":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Jobs JSON. jobs_results contains title, company_name, location, extensions for posting details and apply_links when available."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF Google Jobs Search","description":"Job search API for AI agents: Google Jobs listings as JSON for a role, company or location. Returns job titles, employers, locations, posting details and application links when available for hiring research and job discovery."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-jobs-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/jobs"}}},"x-output-schema":{"type":"object","properties":{"jobs_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"company_name":{"type":"string"},"location":{"type":"string"},"extensions":{"type":"array","items":{"type":"string"}},"apply_links":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Jobs JSON. jobs_results contains title, company_name, location, extensions for posting details and apply_links when available."},"x-input-example":{"query":"product manager jobs new york","country":"us","language":"en"},"x-output-example":{"jobs_results":[{"title":"Product Manager","company_name":"Northstar Analytics","location":"New York, NY","extensions":["Full-time","Posted 2 days ago"],"apply_links":[{"title":"Apply","link":"https://example.com/careers/product-manager"}]}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"parameters":[{"name":"query","in":"query","required":true,"description":"Required job search text, e.g. software engineer in Austin. No default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192,"example":"product manager jobs new york"},"example":"product manager jobs new york"},{"name":"country","in":"query","required":false,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192,"example":"us"},"example":"us"},{"name":"language","in":"query","required":false,"description":"Google Jobs result language/locale, e.g. en_us; upstream default en_us. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192,"example":"en"},"example":"en"},{"name":"uule","in":"query","required":false,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"domain","in":"query","required":false,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"next_page_token","in":"query","required":false,"description":"Opaque continuation token from the previous jobs response. Omit for the first page; keep the original query/filters. Each page is a separate request. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"chips","in":"query","required":false,"description":"Google Jobs filter expression copied from the search page, e.g. employment_type:FULLTIME. Omitted: no extra chip filter. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"lrad","in":"query","required":false,"description":"Google Jobs radius value copied from a Google Jobs URL. Passed through as a string; upstream documents no unit or range. Omit for source-default radius. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"ltype","in":"query","required":false,"description":"Work-from-home filter token copied from a Google Jobs URL; upstream publishes no fixed value list. Omitted: no explicit work-from-home filter. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"uds","in":"query","required":false,"description":"Opaque Google results-filter token copied from a Google search URL. Omitted: no extra token filter; do not invent a token. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}],"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"jobs_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"company_name":{"type":"string"},"location":{"type":"string"},"extensions":{"type":"array","items":{"type":"string"}},"apply_links":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Jobs JSON. jobs_results contains title, company_name, location, extensions for posting details and apply_links when available."},"example":{"jobs_results":[{"title":"Product Manager","company_name":"Northstar Analytics","location":"New York, NY","extensions":["Full-time","Posted 2 days ago"],"apply_links":[{"title":"Apply","link":"https://example.com/careers/product-manager"}]}]}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}}},"post":{"operationId":"x402PostJobs","summary":"FastAF Google Jobs Search","description":"Job search API for AI agents: Google Jobs listings as JSON for a role, company or location. Returns job titles, employers, locations, posting details and application links when available for hiring research and job discovery. Provided by FastAF Google Jobs Search. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send a JSON body. An empty unpaid probe returns 402; a paid retry requires valid input. Only successful calls settle.","tags":["jobs","google","hiring"],"x-category":"jobs","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/jobs","description":"Job search API for AI agents: Google Jobs listings as JSON for a role, company or location. Returns job titles, employers, locations, posting details and application links when available for hiring research and job discovery. Provided by FastAF Google Jobs Search. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-jobs-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"query":"product manager jobs new york","country":"us","language":"en"},"method":"POST"},"output":{"type":"json","example":{"jobs_results":[{"title":"Product Manager","company_name":"Northstar Analytics","location":"New York, NY","extensions":["Full-time","Posted 2 days ago"],"apply_links":[{"title":"Apply","link":"https://example.com/careers/product-manager"}]}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-jobs-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","description":"Google Jobs keyword search with country and language targeting; the query can include role and location.","examples":[{"query":"product manager jobs new york","country":"us","language":"en"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required job search text, e.g. software engineer in Austin. No default. No option surcharge; 5 credits per successful request.","examples":["product manager jobs new york"]},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 5 credits per successful request.","examples":["us"]},"language":{"type":"string","maxLength":8192,"description":"Google Jobs result language/locale, e.g. en_us; upstream default en_us. No option surcharge; 5 credits per successful request.","examples":["en"]},"uule":{"type":"string","maxLength":8192,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No option surcharge; 5 credits per successful request."},"domain":{"type":"string","maxLength":8192,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No option surcharge; 5 credits per successful request."},"next_page_token":{"type":"string","maxLength":8192,"description":"Opaque continuation token from the previous jobs response. Omit for the first page; keep the original query/filters. Each page is a separate request. No option surcharge; 5 credits per successful request."},"chips":{"type":"string","maxLength":8192,"description":"Google Jobs filter expression copied from the search page, e.g. employment_type:FULLTIME. Omitted: no extra chip filter. No option surcharge; 5 credits per successful request."},"lrad":{"type":"string","maxLength":8192,"description":"Google Jobs radius value copied from a Google Jobs URL. Passed through as a string; upstream documents no unit or range. Omit for source-default radius. No option surcharge; 5 credits per successful request."},"ltype":{"type":"string","maxLength":8192,"description":"Work-from-home filter token copied from a Google Jobs URL; upstream publishes no fixed value list. Omitted: no explicit work-from-home filter. No option surcharge; 5 credits per successful request."},"uds":{"type":"string","maxLength":8192,"description":"Opaque Google results-filter token copied from a Google search URL. Omitted: no extra token filter; do not invent a token. No option surcharge; 5 credits per successful request."}},"required":["query"]}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"jobs_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"company_name":{"type":"string"},"location":{"type":"string"},"extensions":{"type":"array","items":{"type":"string"}},"apply_links":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Jobs JSON. jobs_results contains title, company_name, location, extensions for posting details and apply_links when available."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF Google Jobs Search","description":"Job search API for AI agents: Google Jobs listings as JSON for a role, company or location. Returns job titles, employers, locations, posting details and application links when available for hiring research and job discovery."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-jobs-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/jobs"}}},"x-output-schema":{"type":"object","properties":{"jobs_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"company_name":{"type":"string"},"location":{"type":"string"},"extensions":{"type":"array","items":{"type":"string"}},"apply_links":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Jobs JSON. jobs_results contains title, company_name, location, extensions for posting details and apply_links when available."},"x-input-example":{"query":"product manager jobs new york","country":"us","language":"en"},"x-output-example":{"jobs_results":[{"title":"Product Manager","company_name":"Northstar Analytics","location":"New York, NY","extensions":["Full-time","Posted 2 days ago"],"apply_links":[{"title":"Apply","link":"https://example.com/careers/product-manager"}]}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"jobs_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"company_name":{"type":"string"},"location":{"type":"string"},"extensions":{"type":"array","items":{"type":"string"}},"apply_links":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Jobs JSON. jobs_results contains title, company_name, location, extensions for posting details and apply_links when available."},"example":{"jobs_results":[{"title":"Product Manager","company_name":"Northstar Analytics","location":"New York, NY","extensions":["Full-time","Posted 2 days ago"],"apply_links":[{"title":"Apply","link":"https://example.com/careers/product-manager"}]}]}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Google Jobs keyword search with country and language targeting; the query can include role and location.","examples":[{"query":"product manager jobs new york","country":"us","language":"en"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required job search text, e.g. software engineer in Austin. No default. No option surcharge; 5 credits per successful request.","examples":["product manager jobs new york"]},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 5 credits per successful request.","examples":["us"]},"language":{"type":"string","maxLength":8192,"description":"Google Jobs result language/locale, e.g. en_us; upstream default en_us. No option surcharge; 5 credits per successful request.","examples":["en"]},"uule":{"type":"string","maxLength":8192,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No option surcharge; 5 credits per successful request."},"domain":{"type":"string","maxLength":8192,"description":"Google host to search, e.g. google.com or google.co.uk; default google.com. No option surcharge; 5 credits per successful request."},"next_page_token":{"type":"string","maxLength":8192,"description":"Opaque continuation token from the previous jobs response. Omit for the first page; keep the original query/filters. Each page is a separate request. No option surcharge; 5 credits per successful request."},"chips":{"type":"string","maxLength":8192,"description":"Google Jobs filter expression copied from the search page, e.g. employment_type:FULLTIME. Omitted: no extra chip filter. No option surcharge; 5 credits per successful request."},"lrad":{"type":"string","maxLength":8192,"description":"Google Jobs radius value copied from a Google Jobs URL. Passed through as a string; upstream documents no unit or range. Omit for source-default radius. No option surcharge; 5 credits per successful request."},"ltype":{"type":"string","maxLength":8192,"description":"Work-from-home filter token copied from a Google Jobs URL; upstream publishes no fixed value list. Omitted: no explicit work-from-home filter. No option surcharge; 5 credits per successful request."},"uds":{"type":"string","maxLength":8192,"description":"Opaque Google results-filter token copied from a Google search URL. Omitted: no extra token filter; do not invent a token. No option surcharge; 5 credits per successful request."}},"required":["query"]},"example":{"query":"product manager jobs new york","country":"us","language":"en"}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}]}},"/x402/v1/ai":{"get":{"operationId":"x402GetAi","summary":"FastAF Google AI Answers","description":"AI answer and web research API for AI agents: Google AI Mode responses as JSON text blocks and source references. Supports natural-language search questions with country and language targeting for research summaries; source links may be Google redirect paths. Provided by FastAF Google AI Answers. Price: $0.010000 USDC fixed per successful call. Docs: https://fastaf.co Send query parameters, not a JSON body. The PAYMENT-REQUIRED header quotes the fixed price of this endpoint; options that cost more than it (SERP advance_search, scrape with rendering plus premium proxies or AI extraction) return 400 options_need_api_key before payment and need an API key. Sign it with an x402 v2 client and retry the same URL with PAYMENT-SIGNATURE. Invalid parameters or blocked targets return 402 when unsigned, or 400 before payment verification/settlement when signed. Only successful calls are settled.","tags":["ai","google","answer","search"],"x-category":"ai","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/ai","description":"AI answer and web research API for AI agents: Google AI Mode responses as JSON text blocks and source references. Supports natural-language search questions with country and language targeting for research summaries; source links may be Google redirect paths. Provided by FastAF Google AI Answers. Price: $0.010000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-ai-mode-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"query":"how do x402 payments work","country":"us","language":"en"},"method":"GET"},"output":{"type":"json","example":{"text_blocks":[{"type":"paragraph","snippet":"An x402 server returns a payment request with HTTP 402; the client signs it and retries the request.","links":[{"anchor":"","link":"/goto?url=x402-overview"}]}],"references":[{"title":"x402: Internet-native payments. Opens in new tab.","link":"/goto?url=x402-overview","snippet":"An open protocol for payments over HTTP.","source":"x402"}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-ai-mode-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET"]},"queryParams":{"type":"object","description":"Natural-language Google AI Mode query with country and language targeting.","examples":[{"query":"how do x402 payments work","country":"us","language":"en"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required question/search text for Google AI Mode, e.g. How does an espresso machine work? No default. No option surcharge; 10 credits per successful request.","examples":["how do x402 payments work"]},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 10 credits per successful request.","examples":["us"]},"language":{"type":"string","maxLength":8192,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 10 credits per successful request.","examples":["en"]},"uule":{"type":"string","maxLength":8192,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No option surcharge; 10 credits per successful request."},"location":{"type":"string","maxLength":8192,"description":"City-level search origin, e.g. Austin, Texas, United States; omit for source-default location. Cannot be combined with uule. No option surcharge; 10 credits per successful request."},"safe":{"type":"string","maxLength":8192,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No option surcharge; 10 credits per successful request."},"html":{"type":"boolean","description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 10 credits per successful request."}},"required":["query"]}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"text_blocks":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"snippet":{"type":"string"},"links":{"type":"array","items":{"type":"object","properties":{"anchor":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true}},"references":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"},"source":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google AI Mode JSON. text_blocks contains answer paragraphs with snippet and links; references holds source titles and snippets. Links can be path-only Google redirects, not resolved URLs."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF Google AI Answers","description":"AI answer and web research API for AI agents: Google AI Mode responses as JSON text blocks and source references. Supports natural-language search questions with country and language targeting for research summaries; source links may be Google redirect paths."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-ai-mode-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/ai"}}},"x-output-schema":{"anyOf":[{"type":"object","properties":{"text_blocks":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"snippet":{"type":"string"},"links":{"type":"array","items":{"type":"object","properties":{"anchor":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true}},"references":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"},"source":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google AI Mode JSON. text_blocks contains answer paragraphs with snippet and links; references holds source titles and snippets. Links can be path-only Google redirects, not resolved URLs."},{"type":"string"}]},"x-input-example":{"query":"how do x402 payments work","country":"us","language":"en"},"x-output-example":{"text_blocks":[{"type":"paragraph","snippet":"An x402 server returns a payment request with HTTP 402; the client signs it and retries the request.","links":[{"anchor":"","link":"/goto?url=x402-overview"}]}],"references":[{"title":"x402: Internet-native payments. Opens in new tab.","link":"/goto?url=x402-overview","snippet":"An open protocol for payments over HTTP.","source":"x402"}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.010000"}},"parameters":[{"name":"query","in":"query","required":true,"description":"Required question/search text for Google AI Mode, e.g. How does an espresso machine work? No default. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192,"example":"how do x402 payments work"},"example":"how do x402 payments work"},{"name":"country","in":"query","required":false,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192,"example":"us"},"example":"us"},{"name":"language","in":"query","required":false,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192,"example":"en"},"example":"en"},{"name":"uule","in":"query","required":false,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"location","in":"query","required":false,"description":"City-level search origin, e.g. Austin, Texas, United States; omit for source-default location. Cannot be combined with uule. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"safe","in":"query","required":false,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"html","in":"query","required":false,"description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 10 credits per successful request.","schema":{"type":"boolean"}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}],"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"text_blocks":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"snippet":{"type":"string"},"links":{"type":"array","items":{"type":"object","properties":{"anchor":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true}},"references":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"},"source":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google AI Mode JSON. text_blocks contains answer paragraphs with snippet and links; references holds source titles and snippets. Links can be path-only Google redirects, not resolved URLs."},"example":{"text_blocks":[{"type":"paragraph","snippet":"An x402 server returns a payment request with HTTP 402; the client signs it and retries the request.","links":[{"anchor":"","link":"/goto?url=x402-overview"}]}],"references":[{"title":"x402: Internet-native payments. Opens in new tab.","link":"/goto?url=x402-overview","snippet":"An open protocol for payments over HTTP.","source":"x402"}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}}},"post":{"operationId":"x402PostAi","summary":"FastAF Google AI Answers","description":"AI answer and web research API for AI agents: Google AI Mode responses as JSON text blocks and source references. Supports natural-language search questions with country and language targeting for research summaries; source links may be Google redirect paths. Provided by FastAF Google AI Answers. Price: $0.010000 USDC fixed per successful call. Docs: https://fastaf.co Send a JSON body. An empty unpaid probe returns 402; a paid retry requires valid input. Only successful calls settle.","tags":["ai","google","answer","search"],"x-category":"ai","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/ai","description":"AI answer and web research API for AI agents: Google AI Mode responses as JSON text blocks and source references. Supports natural-language search questions with country and language targeting for research summaries; source links may be Google redirect paths. Provided by FastAF Google AI Answers. Price: $0.010000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-ai-mode-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"query":"how do x402 payments work","country":"us","language":"en"},"method":"POST"},"output":{"type":"json","example":{"text_blocks":[{"type":"paragraph","snippet":"An x402 server returns a payment request with HTTP 402; the client signs it and retries the request.","links":[{"anchor":"","link":"/goto?url=x402-overview"}]}],"references":[{"title":"x402: Internet-native payments. Opens in new tab.","link":"/goto?url=x402-overview","snippet":"An open protocol for payments over HTTP.","source":"x402"}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-ai-mode-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","description":"Natural-language Google AI Mode query with country and language targeting.","examples":[{"query":"how do x402 payments work","country":"us","language":"en"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required question/search text for Google AI Mode, e.g. How does an espresso machine work? No default. No option surcharge; 10 credits per successful request.","examples":["how do x402 payments work"]},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 10 credits per successful request.","examples":["us"]},"language":{"type":"string","maxLength":8192,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 10 credits per successful request.","examples":["en"]},"uule":{"type":"string","maxLength":8192,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No option surcharge; 10 credits per successful request."},"location":{"type":"string","maxLength":8192,"description":"City-level search origin, e.g. Austin, Texas, United States; omit for source-default location. Cannot be combined with uule. No option surcharge; 10 credits per successful request."},"safe":{"type":"string","maxLength":8192,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No option surcharge; 10 credits per successful request."},"html":{"type":"boolean","description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 10 credits per successful request."}},"required":["query"]}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"text_blocks":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"snippet":{"type":"string"},"links":{"type":"array","items":{"type":"object","properties":{"anchor":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true}},"references":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"},"source":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google AI Mode JSON. text_blocks contains answer paragraphs with snippet and links; references holds source titles and snippets. Links can be path-only Google redirects, not resolved URLs."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF Google AI Answers","description":"AI answer and web research API for AI agents: Google AI Mode responses as JSON text blocks and source references. Supports natural-language search questions with country and language targeting for research summaries; source links may be Google redirect paths."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-ai-mode-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/ai"}}},"x-output-schema":{"anyOf":[{"type":"object","properties":{"text_blocks":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"snippet":{"type":"string"},"links":{"type":"array","items":{"type":"object","properties":{"anchor":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true}},"references":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"},"source":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google AI Mode JSON. text_blocks contains answer paragraphs with snippet and links; references holds source titles and snippets. Links can be path-only Google redirects, not resolved URLs."},{"type":"string"}]},"x-input-example":{"query":"how do x402 payments work","country":"us","language":"en"},"x-output-example":{"text_blocks":[{"type":"paragraph","snippet":"An x402 server returns a payment request with HTTP 402; the client signs it and retries the request.","links":[{"anchor":"","link":"/goto?url=x402-overview"}]}],"references":[{"title":"x402: Internet-native payments. Opens in new tab.","link":"/goto?url=x402-overview","snippet":"An open protocol for payments over HTTP.","source":"x402"}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.010000"}},"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"text_blocks":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"snippet":{"type":"string"},"links":{"type":"array","items":{"type":"object","properties":{"anchor":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true}},"references":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"},"source":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google AI Mode JSON. text_blocks contains answer paragraphs with snippet and links; references holds source titles and snippets. Links can be path-only Google redirects, not resolved URLs."},"example":{"text_blocks":[{"type":"paragraph","snippet":"An x402 server returns a payment request with HTTP 402; the client signs it and retries the request.","links":[{"anchor":"","link":"/goto?url=x402-overview"}]}],"references":[{"title":"x402: Internet-native payments. Opens in new tab.","link":"/goto?url=x402-overview","snippet":"An open protocol for payments over HTTP.","source":"x402"}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Natural-language Google AI Mode query with country and language targeting.","examples":[{"query":"how do x402 payments work","country":"us","language":"en"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required question/search text for Google AI Mode, e.g. How does an espresso machine work? No default. No option surcharge; 10 credits per successful request.","examples":["how do x402 payments work"]},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No option surcharge; 10 credits per successful request.","examples":["us"]},"language":{"type":"string","maxLength":8192,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No option surcharge; 10 credits per successful request.","examples":["en"]},"uule":{"type":"string","maxLength":8192,"description":"Google's encoded geographic search token, copied from a Google URL. Omit for no explicit token; do not combine with location where supported. No option surcharge; 10 credits per successful request."},"location":{"type":"string","maxLength":8192,"description":"City-level search origin, e.g. Austin, Texas, United States; omit for source-default location. Cannot be combined with uule. No option surcharge; 10 credits per successful request."},"safe":{"type":"string","maxLength":8192,"description":"Adult-content filter: active enables SafeSearch; off disables it (default off). No option surcharge; 10 credits per successful request."},"html":{"type":"boolean","description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 10 credits per successful request."}},"required":["query"]},"example":{"query":"how do x402 payments work","country":"us","language":"en"}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}]}},"/x402/v1/linkedin_jobs":{"get":{"operationId":"x402GetLinkedin_jobs","summary":"LinkedIn public job listings","description":"LinkedIn public job listings API for AI agents: JSON array of public LinkedIn job listings with title, company, location and job link when available, by keyword with location, date, job type and experience filters. For recruiting research and job-market monitoring on LinkedIn. Public listings only, no authenticated content. Provided by LinkedIn public job listings. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send query parameters, not a JSON body. The PAYMENT-REQUIRED header quotes the fixed price of this endpoint; options that cost more than it (SERP advance_search, scrape with rendering plus premium proxies or AI extraction) return 400 options_need_api_key before payment and need an API key. Sign it with an x402 v2 client and retry the same URL with PAYMENT-SIGNATURE. Invalid parameters or blocked targets return 402 when unsigned, or 400 before payment verification/settlement when signed. Only successful calls are settled.","tags":["jobs","linkedin_jobs"],"x-category":"jobs","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/linkedin_jobs","description":"LinkedIn public job listings API for AI agents: JSON array of public LinkedIn job listings with title, company, location and job link when available, by keyword with location, date, job type and experience filters. For recruiting research and job-market monitoring on LinkedIn. Public listings only, no authenticated content. Provided by LinkedIn public job listings. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/linkedin-jobs-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"field":"python"},"method":"GET"},"output":{"type":"json","example":[{"job_position":"Python Developer","company_name":"Example Inc.","job_location":"London","job_link":"https://www.linkedin.com/jobs/view/1234567890/"}]},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/linkedin-jobs-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET"]},"queryParams":{"type":"object","description":"Required job title or company keyword, e.g. Python developer; no default.","examples":[{"field":"python"}],"additionalProperties":false,"properties":{"field":{"type":"string","maxLength":8192,"description":"Required job title or company keyword, e.g. \"Python developer\"; no default. No option surcharge; 5 credits per successful request.","examples":["python"]},"geoid":{"type":"string","maxLength":8192,"description":"LinkedIn numeric location ID as a string, copied from a LinkedIn jobs URL (geoId=...); default \"92000000\" (worldwide). No option surcharge; 5 credits per successful request."},"location":{"type":"string","maxLength":8192,"description":"Location text, e.g. \"London\" or \"Berlin, Germany\"; omit for worldwide jobs. No option surcharge; 5 credits per successful request."},"page":{"type":"integer","minimum":1,"description":"One-based result page, integer at least 1, e.g. 2; default 1. No option surcharge; 5 credits per successful request."},"sort_by":{"type":"string","maxLength":8192,"description":"Posting-date filter: day, week or month, e.g. \"week\" for the past week; omitted means no date filter. No option surcharge; 5 credits per successful request."},"job_type":{"type":"string","maxLength":8192,"description":"Employment filter: temporary, contract, volunteer, full_time or part_time, e.g. \"full_time\"; omitted means all types. No option surcharge; 5 credits per successful request."},"exp_level":{"type":"string","maxLength":8192,"description":"Experience filter: internship, entry_level, associate, mid_senior_level or director, e.g. \"entry_level\"; omitted means all levels. No option surcharge; 5 credits per successful request."},"work_type":{"type":"string","maxLength":8192,"description":"Work model: at_work (on site), remote or hybrid, e.g. \"remote\"; omitted means all models. No option surcharge; 5 credits per successful request."},"filter_by_company":{"type":"string","maxLength":8192,"description":"LinkedIn numeric company ID as a string, copied from a LinkedIn company or jobs URL, e.g. \"1441\"; omitted means all companies. No option surcharge; 5 credits per successful request."}},"required":["field"]}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"array","items":{"type":"object","properties":{"job_position":{"type":"string"},"company_name":{"type":"string"},"job_location":{"type":"string"},"job_link":{"type":"string"}},"additionalProperties":true},"description":"JSON array of public LinkedIn job listings with title, company, location and job link when available. Public listings only, no authenticated content."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"LinkedIn public job listings","description":"LinkedIn public job listings API for AI agents: JSON array of public LinkedIn job listings with title, company, location and job link when available, by keyword with location, date, job type and experience filters. For recruiting research and job-market monitoring on LinkedIn. Public listings only, no authenticated content."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/linkedin-jobs-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/linkedin_jobs"}}},"x-output-schema":{"type":"array","items":{"type":"object","properties":{"job_position":{"type":"string"},"company_name":{"type":"string"},"job_location":{"type":"string"},"job_link":{"type":"string"}},"additionalProperties":true},"description":"JSON array of public LinkedIn job listings with title, company, location and job link when available. Public listings only, no authenticated content."},"x-input-example":{"field":"python"},"x-output-example":[{"job_position":"Python Developer","company_name":"Example Inc.","job_location":"London","job_link":"https://www.linkedin.com/jobs/view/1234567890/"}],"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"parameters":[{"name":"field","in":"query","required":true,"description":"Required job title or company keyword, e.g. \"Python developer\"; no default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192,"example":"python"},"example":"python"},{"name":"geoid","in":"query","required":false,"description":"LinkedIn numeric location ID as a string, copied from a LinkedIn jobs URL (geoId=...); default \"92000000\" (worldwide). No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"location","in":"query","required":false,"description":"Location text, e.g. \"London\" or \"Berlin, Germany\"; omit for worldwide jobs. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"page","in":"query","required":false,"description":"One-based result page, integer at least 1, e.g. 2; default 1. No option surcharge; 5 credits per successful request.","schema":{"type":"integer","minimum":1}},{"name":"sort_by","in":"query","required":false,"description":"Posting-date filter: day, week or month, e.g. \"week\" for the past week; omitted means no date filter. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"job_type","in":"query","required":false,"description":"Employment filter: temporary, contract, volunteer, full_time or part_time, e.g. \"full_time\"; omitted means all types. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"exp_level","in":"query","required":false,"description":"Experience filter: internship, entry_level, associate, mid_senior_level or director, e.g. \"entry_level\"; omitted means all levels. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"work_type","in":"query","required":false,"description":"Work model: at_work (on site), remote or hybrid, e.g. \"remote\"; omitted means all models. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"filter_by_company","in":"query","required":false,"description":"LinkedIn numeric company ID as a string, copied from a LinkedIn company or jobs URL, e.g. \"1441\"; omitted means all companies. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}],"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"job_position":{"type":"string"},"company_name":{"type":"string"},"job_location":{"type":"string"},"job_link":{"type":"string"}},"additionalProperties":true},"description":"JSON array of public LinkedIn job listings with title, company, location and job link when available. Public listings only, no authenticated content."},"example":[{"job_position":"Python Developer","company_name":"Example Inc.","job_location":"London","job_link":"https://www.linkedin.com/jobs/view/1234567890/"}]}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}}},"post":{"operationId":"x402PostLinkedin_jobs","summary":"LinkedIn public job listings","description":"LinkedIn public job listings API for AI agents: JSON array of public LinkedIn job listings with title, company, location and job link when available, by keyword with location, date, job type and experience filters. For recruiting research and job-market monitoring on LinkedIn. Public listings only, no authenticated content. Provided by LinkedIn public job listings. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send a JSON body. An empty unpaid probe returns 402; a paid retry requires valid input. Only successful calls settle.","tags":["jobs","linkedin_jobs"],"x-category":"jobs","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/linkedin_jobs","description":"LinkedIn public job listings API for AI agents: JSON array of public LinkedIn job listings with title, company, location and job link when available, by keyword with location, date, job type and experience filters. For recruiting research and job-market monitoring on LinkedIn. Public listings only, no authenticated content. Provided by LinkedIn public job listings. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/linkedin-jobs-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"field":"python"},"method":"POST"},"output":{"type":"json","example":[{"job_position":"Python Developer","company_name":"Example Inc.","job_location":"London","job_link":"https://www.linkedin.com/jobs/view/1234567890/"}]},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/linkedin-jobs-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","description":"Required job title or company keyword, e.g. Python developer; no default.","examples":[{"field":"python"}],"additionalProperties":false,"properties":{"field":{"type":"string","maxLength":8192,"description":"Required job title or company keyword, e.g. \"Python developer\"; no default. No option surcharge; 5 credits per successful request.","examples":["python"]},"geoid":{"type":"string","maxLength":8192,"description":"LinkedIn numeric location ID as a string, copied from a LinkedIn jobs URL (geoId=...); default \"92000000\" (worldwide). No option surcharge; 5 credits per successful request."},"location":{"type":"string","maxLength":8192,"description":"Location text, e.g. \"London\" or \"Berlin, Germany\"; omit for worldwide jobs. No option surcharge; 5 credits per successful request."},"page":{"type":"integer","minimum":1,"description":"One-based result page, integer at least 1, e.g. 2; default 1. No option surcharge; 5 credits per successful request."},"sort_by":{"type":"string","maxLength":8192,"description":"Posting-date filter: day, week or month, e.g. \"week\" for the past week; omitted means no date filter. No option surcharge; 5 credits per successful request."},"job_type":{"type":"string","maxLength":8192,"description":"Employment filter: temporary, contract, volunteer, full_time or part_time, e.g. \"full_time\"; omitted means all types. No option surcharge; 5 credits per successful request."},"exp_level":{"type":"string","maxLength":8192,"description":"Experience filter: internship, entry_level, associate, mid_senior_level or director, e.g. \"entry_level\"; omitted means all levels. No option surcharge; 5 credits per successful request."},"work_type":{"type":"string","maxLength":8192,"description":"Work model: at_work (on site), remote or hybrid, e.g. \"remote\"; omitted means all models. No option surcharge; 5 credits per successful request."},"filter_by_company":{"type":"string","maxLength":8192,"description":"LinkedIn numeric company ID as a string, copied from a LinkedIn company or jobs URL, e.g. \"1441\"; omitted means all companies. No option surcharge; 5 credits per successful request."}},"required":["field"]}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"array","items":{"type":"object","properties":{"job_position":{"type":"string"},"company_name":{"type":"string"},"job_location":{"type":"string"},"job_link":{"type":"string"}},"additionalProperties":true},"description":"JSON array of public LinkedIn job listings with title, company, location and job link when available. Public listings only, no authenticated content."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"LinkedIn public job listings","description":"LinkedIn public job listings API for AI agents: JSON array of public LinkedIn job listings with title, company, location and job link when available, by keyword with location, date, job type and experience filters. For recruiting research and job-market monitoring on LinkedIn. Public listings only, no authenticated content."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/linkedin-jobs-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/linkedin_jobs"}}},"x-output-schema":{"type":"array","items":{"type":"object","properties":{"job_position":{"type":"string"},"company_name":{"type":"string"},"job_location":{"type":"string"},"job_link":{"type":"string"}},"additionalProperties":true},"description":"JSON array of public LinkedIn job listings with title, company, location and job link when available. Public listings only, no authenticated content."},"x-input-example":{"field":"python"},"x-output-example":[{"job_position":"Python Developer","company_name":"Example Inc.","job_location":"London","job_link":"https://www.linkedin.com/jobs/view/1234567890/"}],"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"job_position":{"type":"string"},"company_name":{"type":"string"},"job_location":{"type":"string"},"job_link":{"type":"string"}},"additionalProperties":true},"description":"JSON array of public LinkedIn job listings with title, company, location and job link when available. Public listings only, no authenticated content."},"example":[{"job_position":"Python Developer","company_name":"Example Inc.","job_location":"London","job_link":"https://www.linkedin.com/jobs/view/1234567890/"}]}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Required job title or company keyword, e.g. Python developer; no default.","examples":[{"field":"python"}],"additionalProperties":false,"properties":{"field":{"type":"string","maxLength":8192,"description":"Required job title or company keyword, e.g. \"Python developer\"; no default. No option surcharge; 5 credits per successful request.","examples":["python"]},"geoid":{"type":"string","maxLength":8192,"description":"LinkedIn numeric location ID as a string, copied from a LinkedIn jobs URL (geoId=...); default \"92000000\" (worldwide). No option surcharge; 5 credits per successful request."},"location":{"type":"string","maxLength":8192,"description":"Location text, e.g. \"London\" or \"Berlin, Germany\"; omit for worldwide jobs. No option surcharge; 5 credits per successful request."},"page":{"type":"integer","minimum":1,"description":"One-based result page, integer at least 1, e.g. 2; default 1. No option surcharge; 5 credits per successful request."},"sort_by":{"type":"string","maxLength":8192,"description":"Posting-date filter: day, week or month, e.g. \"week\" for the past week; omitted means no date filter. No option surcharge; 5 credits per successful request."},"job_type":{"type":"string","maxLength":8192,"description":"Employment filter: temporary, contract, volunteer, full_time or part_time, e.g. \"full_time\"; omitted means all types. No option surcharge; 5 credits per successful request."},"exp_level":{"type":"string","maxLength":8192,"description":"Experience filter: internship, entry_level, associate, mid_senior_level or director, e.g. \"entry_level\"; omitted means all levels. No option surcharge; 5 credits per successful request."},"work_type":{"type":"string","maxLength":8192,"description":"Work model: at_work (on site), remote or hybrid, e.g. \"remote\"; omitted means all models. No option surcharge; 5 credits per successful request."},"filter_by_company":{"type":"string","maxLength":8192,"description":"LinkedIn numeric company ID as a string, copied from a LinkedIn company or jobs URL, e.g. \"1441\"; omitted means all companies. No option surcharge; 5 credits per successful request."}},"required":["field"]},"example":{"field":"python"}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}]}},"/x402/v1/patents":{"get":{"operationId":"x402GetPatents","summary":"Google Patents","description":"Google Patents search API for AI agents: patent results as JSON with titles, patent IDs and publication links, with inventor, assignee, country, status and date filters. For prior-art, competitor and technology research; not full patent texts or claims. Provided by Google Patents. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send query parameters, not a JSON body. The PAYMENT-REQUIRED header quotes the fixed price of this endpoint; options that cost more than it (SERP advance_search, scrape with rendering plus premium proxies or AI extraction) return 400 options_need_api_key before payment and need an API key. Sign it with an x402 v2 client and retry the same URL with PAYMENT-SIGNATURE. Invalid parameters or blocked targets return 402 when unsigned, or 400 before payment verification/settlement when signed. Only successful calls are settled.","tags":["search","google","patents"],"x-category":"search","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/patents","description":"Google Patents search API for AI agents: patent results as JSON with titles, patent IDs and publication links, with inventor, assignee, country, status and date filters. For prior-art, competitor and technology research; not full patent texts or claims. Provided by Google Patents. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-patents-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"query":"solar cell"},"method":"GET"},"output":{"type":"json","example":{"organic_results":[{"title":"Solar cell","patent_id":"US1234567B2","link":"https://patents.google.com/patent/US1234567B2/en"}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-patents-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET"]},"queryParams":{"type":"object","description":"Required patent search keywords; no default.","examples":[{"query":"solar cell"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required patent search keywords, e.g. \"solar cell\"; no default. No option surcharge; 5 credits per successful request.","examples":["solar cell"]},"page":{"type":"integer","minimum":1,"description":"One-based result page, integer at least 1, e.g. 2; omitted uses source default. No option surcharge; 5 credits per successful request."},"num":{"type":"integer","minimum":1,"maximum":100,"description":"Results per page, integer 1-100, e.g. 20; omitted uses source default. No option surcharge; 5 credits per successful request."},"sort":{"type":"string","enum":["new","old"],"description":"Sort order: new (newest first) or old (oldest first), e.g. \"new\"; omitted uses source default. No option surcharge; 5 credits per successful request."},"before":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Latest publication date included, YYYY-MM-DD, e.g. \"2025-12-31\"; must not precede after; omitted means no cutoff. No option surcharge; 5 credits per successful request."},"after":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Earliest publication date included, YYYY-MM-DD, e.g. \"2020-01-01\"; omitted means no cutoff. No option surcharge; 5 credits per successful request."},"inventor":{"type":"string","maxLength":8192,"description":"Inventor name filter, e.g. \"Jane Smith\"; omitted means any inventor. No option surcharge; 5 credits per successful request."},"assignee":{"type":"string","maxLength":8192,"description":"Assignee (owner) name filter, e.g. \"Toyota\"; omitted means any assignee. No option surcharge; 5 credits per successful request."},"country":{"type":"string","maxLength":8192,"description":"Patent office country code, e.g. \"US\", \"EP\" or \"JP\"; omitted means any country. No option surcharge; 5 credits per successful request."},"language":{"type":"string","maxLength":8192,"description":"Patent language filter as used in Google Patents search URLs, e.g. \"ENGLISH\"; omitted uses source default. No option surcharge; 5 credits per successful request."},"status":{"type":"string","maxLength":8192,"description":"Patent status filter as used in Google Patents search URLs, e.g. \"GRANT\" or \"APPLICATION\"; omitted uses source default. No option surcharge; 5 credits per successful request."}},"required":["query"]}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"organic_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"patent_id":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Search Google Patents for inventions, patent titles and publication links. JSON response; source fields may vary."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"Google Patents","description":"Google Patents search API for AI agents: patent results as JSON with titles, patent IDs and publication links, with inventor, assignee, country, status and date filters. For prior-art, competitor and technology research; not full patent texts or claims."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-patents-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/patents"}}},"x-output-schema":{"type":"object","properties":{"organic_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"patent_id":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Search Google Patents for inventions, patent titles and publication links. JSON response; source fields may vary."},"x-input-example":{"query":"solar cell"},"x-output-example":{"organic_results":[{"title":"Solar cell","patent_id":"US1234567B2","link":"https://patents.google.com/patent/US1234567B2/en"}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"parameters":[{"name":"query","in":"query","required":true,"description":"Required patent search keywords, e.g. \"solar cell\"; no default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192,"example":"solar cell"},"example":"solar cell"},{"name":"page","in":"query","required":false,"description":"One-based result page, integer at least 1, e.g. 2; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"integer","minimum":1}},{"name":"num","in":"query","required":false,"description":"Results per page, integer 1-100, e.g. 20; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"sort","in":"query","required":false,"description":"Sort order: new (newest first) or old (oldest first), e.g. \"new\"; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","enum":["new","old"]}},{"name":"before","in":"query","required":false,"description":"Latest publication date included, YYYY-MM-DD, e.g. \"2025-12-31\"; must not precede after; omitted means no cutoff. No option surcharge; 5 credits per successful request.","schema":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"after","in":"query","required":false,"description":"Earliest publication date included, YYYY-MM-DD, e.g. \"2020-01-01\"; omitted means no cutoff. No option surcharge; 5 credits per successful request.","schema":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"inventor","in":"query","required":false,"description":"Inventor name filter, e.g. \"Jane Smith\"; omitted means any inventor. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"assignee","in":"query","required":false,"description":"Assignee (owner) name filter, e.g. \"Toyota\"; omitted means any assignee. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"country","in":"query","required":false,"description":"Patent office country code, e.g. \"US\", \"EP\" or \"JP\"; omitted means any country. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"language","in":"query","required":false,"description":"Patent language filter as used in Google Patents search URLs, e.g. \"ENGLISH\"; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"status","in":"query","required":false,"description":"Patent status filter as used in Google Patents search URLs, e.g. \"GRANT\" or \"APPLICATION\"; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}],"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"organic_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"patent_id":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Search Google Patents for inventions, patent titles and publication links. JSON response; source fields may vary."},"example":{"organic_results":[{"title":"Solar cell","patent_id":"US1234567B2","link":"https://patents.google.com/patent/US1234567B2/en"}]}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}}},"post":{"operationId":"x402PostPatents","summary":"Google Patents","description":"Google Patents search API for AI agents: patent results as JSON with titles, patent IDs and publication links, with inventor, assignee, country, status and date filters. For prior-art, competitor and technology research; not full patent texts or claims. Provided by Google Patents. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send a JSON body. An empty unpaid probe returns 402; a paid retry requires valid input. Only successful calls settle.","tags":["search","google","patents"],"x-category":"search","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/patents","description":"Google Patents search API for AI agents: patent results as JSON with titles, patent IDs and publication links, with inventor, assignee, country, status and date filters. For prior-art, competitor and technology research; not full patent texts or claims. Provided by Google Patents. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-patents-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"query":"solar cell"},"method":"POST"},"output":{"type":"json","example":{"organic_results":[{"title":"Solar cell","patent_id":"US1234567B2","link":"https://patents.google.com/patent/US1234567B2/en"}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-patents-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","description":"Required patent search keywords; no default.","examples":[{"query":"solar cell"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required patent search keywords, e.g. \"solar cell\"; no default. No option surcharge; 5 credits per successful request.","examples":["solar cell"]},"page":{"type":"integer","minimum":1,"description":"One-based result page, integer at least 1, e.g. 2; omitted uses source default. No option surcharge; 5 credits per successful request."},"num":{"type":"integer","minimum":1,"maximum":100,"description":"Results per page, integer 1-100, e.g. 20; omitted uses source default. No option surcharge; 5 credits per successful request."},"sort":{"type":"string","enum":["new","old"],"description":"Sort order: new (newest first) or old (oldest first), e.g. \"new\"; omitted uses source default. No option surcharge; 5 credits per successful request."},"before":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Latest publication date included, YYYY-MM-DD, e.g. \"2025-12-31\"; must not precede after; omitted means no cutoff. No option surcharge; 5 credits per successful request."},"after":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Earliest publication date included, YYYY-MM-DD, e.g. \"2020-01-01\"; omitted means no cutoff. No option surcharge; 5 credits per successful request."},"inventor":{"type":"string","maxLength":8192,"description":"Inventor name filter, e.g. \"Jane Smith\"; omitted means any inventor. No option surcharge; 5 credits per successful request."},"assignee":{"type":"string","maxLength":8192,"description":"Assignee (owner) name filter, e.g. \"Toyota\"; omitted means any assignee. No option surcharge; 5 credits per successful request."},"country":{"type":"string","maxLength":8192,"description":"Patent office country code, e.g. \"US\", \"EP\" or \"JP\"; omitted means any country. No option surcharge; 5 credits per successful request."},"language":{"type":"string","maxLength":8192,"description":"Patent language filter as used in Google Patents search URLs, e.g. \"ENGLISH\"; omitted uses source default. No option surcharge; 5 credits per successful request."},"status":{"type":"string","maxLength":8192,"description":"Patent status filter as used in Google Patents search URLs, e.g. \"GRANT\" or \"APPLICATION\"; omitted uses source default. No option surcharge; 5 credits per successful request."}},"required":["query"]}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"organic_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"patent_id":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Search Google Patents for inventions, patent titles and publication links. JSON response; source fields may vary."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"Google Patents","description":"Google Patents search API for AI agents: patent results as JSON with titles, patent IDs and publication links, with inventor, assignee, country, status and date filters. For prior-art, competitor and technology research; not full patent texts or claims."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-patents-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/patents"}}},"x-output-schema":{"type":"object","properties":{"organic_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"patent_id":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Search Google Patents for inventions, patent titles and publication links. JSON response; source fields may vary."},"x-input-example":{"query":"solar cell"},"x-output-example":{"organic_results":[{"title":"Solar cell","patent_id":"US1234567B2","link":"https://patents.google.com/patent/US1234567B2/en"}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"organic_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"patent_id":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Search Google Patents for inventions, patent titles and publication links. JSON response; source fields may vary."},"example":{"organic_results":[{"title":"Solar cell","patent_id":"US1234567B2","link":"https://patents.google.com/patent/US1234567B2/en"}]}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Required patent search keywords; no default.","examples":[{"query":"solar cell"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required patent search keywords, e.g. \"solar cell\"; no default. No option surcharge; 5 credits per successful request.","examples":["solar cell"]},"page":{"type":"integer","minimum":1,"description":"One-based result page, integer at least 1, e.g. 2; omitted uses source default. No option surcharge; 5 credits per successful request."},"num":{"type":"integer","minimum":1,"maximum":100,"description":"Results per page, integer 1-100, e.g. 20; omitted uses source default. No option surcharge; 5 credits per successful request."},"sort":{"type":"string","enum":["new","old"],"description":"Sort order: new (newest first) or old (oldest first), e.g. \"new\"; omitted uses source default. No option surcharge; 5 credits per successful request."},"before":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Latest publication date included, YYYY-MM-DD, e.g. \"2025-12-31\"; must not precede after; omitted means no cutoff. No option surcharge; 5 credits per successful request."},"after":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Earliest publication date included, YYYY-MM-DD, e.g. \"2020-01-01\"; omitted means no cutoff. No option surcharge; 5 credits per successful request."},"inventor":{"type":"string","maxLength":8192,"description":"Inventor name filter, e.g. \"Jane Smith\"; omitted means any inventor. No option surcharge; 5 credits per successful request."},"assignee":{"type":"string","maxLength":8192,"description":"Assignee (owner) name filter, e.g. \"Toyota\"; omitted means any assignee. No option surcharge; 5 credits per successful request."},"country":{"type":"string","maxLength":8192,"description":"Patent office country code, e.g. \"US\", \"EP\" or \"JP\"; omitted means any country. No option surcharge; 5 credits per successful request."},"language":{"type":"string","maxLength":8192,"description":"Patent language filter as used in Google Patents search URLs, e.g. \"ENGLISH\"; omitted uses source default. No option surcharge; 5 credits per successful request."},"status":{"type":"string","maxLength":8192,"description":"Patent status filter as used in Google Patents search URLs, e.g. \"GRANT\" or \"APPLICATION\"; omitted uses source default. No option surcharge; 5 credits per successful request."}},"required":["query"]},"example":{"query":"solar cell"}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}]}},"/x402/v1/flights":{"get":{"operationId":"x402GetFlights","summary":"Google Flights","description":"Google Flights search API for AI agents: itineraries and current fares as JSON between two airports given as IATA codes, one way or round trip. For travel planning and fare comparison; it does not book tickets. Provided by Google Flights. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send query parameters, not a JSON body. The PAYMENT-REQUIRED header quotes the fixed price of this endpoint; options that cost more than it (SERP advance_search, scrape with rendering plus premium proxies or AI extraction) return 400 options_need_api_key before payment and need an API key. Sign it with an x402 v2 client and retry the same URL with PAYMENT-SIGNATURE. Invalid parameters or blocked targets return 402 when unsigned, or 400 before payment verification/settlement when signed. Only successful calls are settled.","tags":["search","google","flights"],"x-category":"search","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/flights","description":"Google Flights search API for AI agents: itineraries and current fares as JSON between two airports given as IATA codes, one way or round trip. For travel planning and fare comparison; it does not book tickets. Provided by Google Flights. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-flights-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"departure_id":"JFK","arrival_id":"LHR","outbound_date":"2027-01-15","type":"2"},"method":"GET"},"output":{"type":"json","example":{"best_flights":[{"price":550,"flights":[{"departure_airport":{"id":"JFK"},"arrival_airport":{"id":"LHR"}}]}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-flights-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET"]},"queryParams":{"type":"object","description":"Required three-letter uppercase IATA departure airport code; no default. Required three-letter uppercase IATA arrival airport code; no default. Required outbound date in YYYY-MM-DD format; no default.","examples":[{"departure_id":"JFK","arrival_id":"LHR","outbound_date":"2027-01-15","type":"2"}],"additionalProperties":false,"properties":{"departure_id":{"type":"string","pattern":"^[A-Z]{3}$","description":"Required three-letter uppercase IATA departure airport code, e.g. \"JFK\"; no default. No option surcharge; 5 credits per successful request.","examples":["JFK"]},"arrival_id":{"type":"string","pattern":"^[A-Z]{3}$","description":"Required three-letter uppercase IATA arrival airport code, e.g. \"LHR\"; no default. No option surcharge; 5 credits per successful request.","examples":["LHR"]},"outbound_date":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Required outbound date in YYYY-MM-DD format, e.g. \"2027-01-15\"; no default. No option surcharge; 5 credits per successful request.","examples":["2027-01-15"]},"return_date":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Return date in YYYY-MM-DD format, on or after outbound_date, e.g. \"2027-01-22\"; for round trips (type \"1\"); optional. No option surcharge; 5 credits per successful request."},"type":{"type":"string","enum":["1","2"],"description":"Trip type: \"1\" round trip, \"2\" one way; omitted uses source default. No option surcharge; 5 credits per successful request.","examples":["2"]},"adults":{"type":"integer","minimum":1,"description":"Adult passenger count, positive integer, e.g. 2; omitted uses source default. No option surcharge; 5 credits per successful request."},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"Three-letter uppercase currency code for prices, e.g. \"EUR\"; omitted uses source default. No option surcharge; 5 credits per successful request."},"hl":{"type":"string","maxLength":8192,"description":"Interface language code, e.g. \"en\" or \"it\"; omitted uses source default. No option surcharge; 5 credits per successful request."},"gl":{"type":"string","maxLength":8192,"description":"Two-letter country code that localizes fares, e.g. \"us\" or \"it\"; omitted uses source default. No option surcharge; 5 credits per successful request."},"travel_class":{"type":"string","enum":["1","2","3","4"],"description":"Cabin class: \"1\" economy, \"2\" premium economy, \"3\" business, \"4\" first; omitted uses source default. No option surcharge; 5 credits per successful request."}},"required":["departure_id","arrival_id","outbound_date"]}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"best_flights":{"type":"array","items":{"type":"object","properties":{"price":{"type":"number"},"flights":{"type":"array","items":{"type":"object","properties":{"departure_airport":{"type":"object","properties":{"id":{"type":"string"}},"additionalProperties":true},"arrival_airport":{"type":"object","properties":{"id":{"type":"string"}},"additionalProperties":true}},"additionalProperties":true}}},"additionalProperties":true}}},"additionalProperties":true,"description":"Search Google Flights for flight itineraries and current fares. JSON response; source fields may vary."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"Google Flights","description":"Google Flights search API for AI agents: itineraries and current fares as JSON between two airports given as IATA codes, one way or round trip. For travel planning and fare comparison; it does not book tickets."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-flights-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/flights"}}},"x-output-schema":{"type":"object","properties":{"best_flights":{"type":"array","items":{"type":"object","properties":{"price":{"type":"number"},"flights":{"type":"array","items":{"type":"object","properties":{"departure_airport":{"type":"object","properties":{"id":{"type":"string"}},"additionalProperties":true},"arrival_airport":{"type":"object","properties":{"id":{"type":"string"}},"additionalProperties":true}},"additionalProperties":true}}},"additionalProperties":true}}},"additionalProperties":true,"description":"Search Google Flights for flight itineraries and current fares. JSON response; source fields may vary."},"x-input-example":{"departure_id":"JFK","arrival_id":"LHR","outbound_date":"2027-01-15","type":"2"},"x-output-example":{"best_flights":[{"price":550,"flights":[{"departure_airport":{"id":"JFK"},"arrival_airport":{"id":"LHR"}}]}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"parameters":[{"name":"departure_id","in":"query","required":true,"description":"Required three-letter uppercase IATA departure airport code, e.g. \"JFK\"; no default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","pattern":"^[A-Z]{3}$","example":"JFK"},"example":"JFK"},{"name":"arrival_id","in":"query","required":true,"description":"Required three-letter uppercase IATA arrival airport code, e.g. \"LHR\"; no default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","pattern":"^[A-Z]{3}$","example":"LHR"},"example":"LHR"},{"name":"outbound_date","in":"query","required":true,"description":"Required outbound date in YYYY-MM-DD format, e.g. \"2027-01-15\"; no default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","example":"2027-01-15"},"example":"2027-01-15"},{"name":"return_date","in":"query","required":false,"description":"Return date in YYYY-MM-DD format, on or after outbound_date, e.g. \"2027-01-22\"; for round trips (type \"1\"); optional. No option surcharge; 5 credits per successful request.","schema":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"type","in":"query","required":false,"description":"Trip type: \"1\" round trip, \"2\" one way; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","enum":["1","2"],"example":"2"},"example":"2"},{"name":"adults","in":"query","required":false,"description":"Adult passenger count, positive integer, e.g. 2; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"integer","minimum":1}},{"name":"currency","in":"query","required":false,"description":"Three-letter uppercase currency code for prices, e.g. \"EUR\"; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","pattern":"^[A-Z]{3}$"}},{"name":"hl","in":"query","required":false,"description":"Interface language code, e.g. \"en\" or \"it\"; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"gl","in":"query","required":false,"description":"Two-letter country code that localizes fares, e.g. \"us\" or \"it\"; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"travel_class","in":"query","required":false,"description":"Cabin class: \"1\" economy, \"2\" premium economy, \"3\" business, \"4\" first; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","enum":["1","2","3","4"]}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}],"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"best_flights":{"type":"array","items":{"type":"object","properties":{"price":{"type":"number"},"flights":{"type":"array","items":{"type":"object","properties":{"departure_airport":{"type":"object","properties":{"id":{"type":"string"}},"additionalProperties":true},"arrival_airport":{"type":"object","properties":{"id":{"type":"string"}},"additionalProperties":true}},"additionalProperties":true}}},"additionalProperties":true}}},"additionalProperties":true,"description":"Search Google Flights for flight itineraries and current fares. JSON response; source fields may vary."},"example":{"best_flights":[{"price":550,"flights":[{"departure_airport":{"id":"JFK"},"arrival_airport":{"id":"LHR"}}]}]}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}}},"post":{"operationId":"x402PostFlights","summary":"Google Flights","description":"Google Flights search API for AI agents: itineraries and current fares as JSON between two airports given as IATA codes, one way or round trip. For travel planning and fare comparison; it does not book tickets. Provided by Google Flights. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send a JSON body. An empty unpaid probe returns 402; a paid retry requires valid input. Only successful calls settle.","tags":["search","google","flights"],"x-category":"search","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/flights","description":"Google Flights search API for AI agents: itineraries and current fares as JSON between two airports given as IATA codes, one way or round trip. For travel planning and fare comparison; it does not book tickets. Provided by Google Flights. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-flights-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"departure_id":"JFK","arrival_id":"LHR","outbound_date":"2027-01-15","type":"2"},"method":"POST"},"output":{"type":"json","example":{"best_flights":[{"price":550,"flights":[{"departure_airport":{"id":"JFK"},"arrival_airport":{"id":"LHR"}}]}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-flights-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","description":"Required three-letter uppercase IATA departure airport code; no default. Required three-letter uppercase IATA arrival airport code; no default. Required outbound date in YYYY-MM-DD format; no default.","examples":[{"departure_id":"JFK","arrival_id":"LHR","outbound_date":"2027-01-15","type":"2"}],"additionalProperties":false,"properties":{"departure_id":{"type":"string","pattern":"^[A-Z]{3}$","description":"Required three-letter uppercase IATA departure airport code, e.g. \"JFK\"; no default. No option surcharge; 5 credits per successful request.","examples":["JFK"]},"arrival_id":{"type":"string","pattern":"^[A-Z]{3}$","description":"Required three-letter uppercase IATA arrival airport code, e.g. \"LHR\"; no default. No option surcharge; 5 credits per successful request.","examples":["LHR"]},"outbound_date":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Required outbound date in YYYY-MM-DD format, e.g. \"2027-01-15\"; no default. No option surcharge; 5 credits per successful request.","examples":["2027-01-15"]},"return_date":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Return date in YYYY-MM-DD format, on or after outbound_date, e.g. \"2027-01-22\"; for round trips (type \"1\"); optional. No option surcharge; 5 credits per successful request."},"type":{"type":"string","enum":["1","2"],"description":"Trip type: \"1\" round trip, \"2\" one way; omitted uses source default. No option surcharge; 5 credits per successful request.","examples":["2"]},"adults":{"type":"integer","minimum":1,"description":"Adult passenger count, positive integer, e.g. 2; omitted uses source default. No option surcharge; 5 credits per successful request."},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"Three-letter uppercase currency code for prices, e.g. \"EUR\"; omitted uses source default. No option surcharge; 5 credits per successful request."},"hl":{"type":"string","maxLength":8192,"description":"Interface language code, e.g. \"en\" or \"it\"; omitted uses source default. No option surcharge; 5 credits per successful request."},"gl":{"type":"string","maxLength":8192,"description":"Two-letter country code that localizes fares, e.g. \"us\" or \"it\"; omitted uses source default. No option surcharge; 5 credits per successful request."},"travel_class":{"type":"string","enum":["1","2","3","4"],"description":"Cabin class: \"1\" economy, \"2\" premium economy, \"3\" business, \"4\" first; omitted uses source default. No option surcharge; 5 credits per successful request."}},"required":["departure_id","arrival_id","outbound_date"]}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"best_flights":{"type":"array","items":{"type":"object","properties":{"price":{"type":"number"},"flights":{"type":"array","items":{"type":"object","properties":{"departure_airport":{"type":"object","properties":{"id":{"type":"string"}},"additionalProperties":true},"arrival_airport":{"type":"object","properties":{"id":{"type":"string"}},"additionalProperties":true}},"additionalProperties":true}}},"additionalProperties":true}}},"additionalProperties":true,"description":"Search Google Flights for flight itineraries and current fares. JSON response; source fields may vary."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"Google Flights","description":"Google Flights search API for AI agents: itineraries and current fares as JSON between two airports given as IATA codes, one way or round trip. For travel planning and fare comparison; it does not book tickets."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-flights-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/flights"}}},"x-output-schema":{"type":"object","properties":{"best_flights":{"type":"array","items":{"type":"object","properties":{"price":{"type":"number"},"flights":{"type":"array","items":{"type":"object","properties":{"departure_airport":{"type":"object","properties":{"id":{"type":"string"}},"additionalProperties":true},"arrival_airport":{"type":"object","properties":{"id":{"type":"string"}},"additionalProperties":true}},"additionalProperties":true}}},"additionalProperties":true}}},"additionalProperties":true,"description":"Search Google Flights for flight itineraries and current fares. JSON response; source fields may vary."},"x-input-example":{"departure_id":"JFK","arrival_id":"LHR","outbound_date":"2027-01-15","type":"2"},"x-output-example":{"best_flights":[{"price":550,"flights":[{"departure_airport":{"id":"JFK"},"arrival_airport":{"id":"LHR"}}]}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"best_flights":{"type":"array","items":{"type":"object","properties":{"price":{"type":"number"},"flights":{"type":"array","items":{"type":"object","properties":{"departure_airport":{"type":"object","properties":{"id":{"type":"string"}},"additionalProperties":true},"arrival_airport":{"type":"object","properties":{"id":{"type":"string"}},"additionalProperties":true}},"additionalProperties":true}}},"additionalProperties":true}}},"additionalProperties":true,"description":"Search Google Flights for flight itineraries and current fares. JSON response; source fields may vary."},"example":{"best_flights":[{"price":550,"flights":[{"departure_airport":{"id":"JFK"},"arrival_airport":{"id":"LHR"}}]}]}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Required three-letter uppercase IATA departure airport code; no default. Required three-letter uppercase IATA arrival airport code; no default. Required outbound date in YYYY-MM-DD format; no default.","examples":[{"departure_id":"JFK","arrival_id":"LHR","outbound_date":"2027-01-15","type":"2"}],"additionalProperties":false,"properties":{"departure_id":{"type":"string","pattern":"^[A-Z]{3}$","description":"Required three-letter uppercase IATA departure airport code, e.g. \"JFK\"; no default. No option surcharge; 5 credits per successful request.","examples":["JFK"]},"arrival_id":{"type":"string","pattern":"^[A-Z]{3}$","description":"Required three-letter uppercase IATA arrival airport code, e.g. \"LHR\"; no default. No option surcharge; 5 credits per successful request.","examples":["LHR"]},"outbound_date":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Required outbound date in YYYY-MM-DD format, e.g. \"2027-01-15\"; no default. No option surcharge; 5 credits per successful request.","examples":["2027-01-15"]},"return_date":{"type":"string","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Return date in YYYY-MM-DD format, on or after outbound_date, e.g. \"2027-01-22\"; for round trips (type \"1\"); optional. No option surcharge; 5 credits per successful request."},"type":{"type":"string","enum":["1","2"],"description":"Trip type: \"1\" round trip, \"2\" one way; omitted uses source default. No option surcharge; 5 credits per successful request.","examples":["2"]},"adults":{"type":"integer","minimum":1,"description":"Adult passenger count, positive integer, e.g. 2; omitted uses source default. No option surcharge; 5 credits per successful request."},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"Three-letter uppercase currency code for prices, e.g. \"EUR\"; omitted uses source default. No option surcharge; 5 credits per successful request."},"hl":{"type":"string","maxLength":8192,"description":"Interface language code, e.g. \"en\" or \"it\"; omitted uses source default. No option surcharge; 5 credits per successful request."},"gl":{"type":"string","maxLength":8192,"description":"Two-letter country code that localizes fares, e.g. \"us\" or \"it\"; omitted uses source default. No option surcharge; 5 credits per successful request."},"travel_class":{"type":"string","enum":["1","2","3","4"],"description":"Cabin class: \"1\" economy, \"2\" premium economy, \"3\" business, \"4\" first; omitted uses source default. No option surcharge; 5 credits per successful request."}},"required":["departure_id","arrival_id","outbound_date"]},"example":{"departure_id":"JFK","arrival_id":"LHR","outbound_date":"2027-01-15","type":"2"}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}]}},"/x402/v1/bing":{"get":{"operationId":"x402GetBing","summary":"Bing web search results","description":"Bing web search results API for AI agents: JSON object with bing_data containing ranked title, link and snippet fields, with market, safe search and location targeting. For source discovery and research when Bing results are wanted rather than Google results. Provided by Bing web search results. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send query parameters, not a JSON body. The PAYMENT-REQUIRED header quotes the fixed price of this endpoint; options that cost more than it (SERP advance_search, scrape with rendering plus premium proxies or AI extraction) return 400 options_need_api_key before payment and need an API key. Sign it with an x402 v2 client and retry the same URL with PAYMENT-SIGNATURE. Invalid parameters or blocked targets return 402 when unsigned, or 400 before payment verification/settlement when signed. Only successful calls are settled.","tags":["search","bing"],"x-category":"search","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/bing","description":"Bing web search results API for AI agents: JSON object with bing_data containing ranked title, link and snippet fields, with market, safe search and location targeting. For source discovery and research when Bing results are wanted rather than Google results. Provided by Bing web search results. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/bing-search-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"query":"what is api"},"method":"GET"},"output":{"type":"json","example":{"bing_data":[{"title":"What is an API?","link":"https://example.com/api","snippet":"An interface between applications.","rank":1}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/bing-search-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET"]},"queryParams":{"type":"object","description":"Required web search keywords; no default.","examples":[{"query":"what is api"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required web search keywords, e.g. \"what is an api\"; no default. No option surcharge; 5 credits per successful request.","examples":["what is api"]},"mkt":{"type":"string","maxLength":8192,"description":"Market as language-COUNTRY, e.g. \"en-US\" or \"it-IT\"; omit for source default, mutually exclusive with cc. No option surcharge; 5 credits per successful request."},"cc":{"type":"string","maxLength":8192,"description":"Two-letter country code, e.g. \"us\" or \"it\"; omit for source default, mutually exclusive with mkt. No option surcharge; 5 credits per successful request."},"first":{"type":"integer","minimum":1,"description":"One-based position of the first result, integer at least 1, e.g. 11 to start at the 11th result; default 1. No option surcharge; 5 credits per successful request."},"count":{"type":"integer","minimum":1,"maximum":50,"description":"Requested result count, integer 1-50, e.g. 20; actual count varies, omitted uses source default. No option surcharge; 5 credits per successful request."},"safeSearch":{"type":"string","enum":["Off","Moderate","Strict"],"description":"Adult-content filter: Off, Moderate or Strict, e.g. \"Strict\"; omitted uses source default. No option surcharge; 5 credits per successful request."},"filters":{"type":"string","maxLength":8192,"description":"Opaque Bing filters copied from a Bing search URL; omitted means no explicit filter. No option surcharge; 5 credits per successful request."},"lat":{"type":"string","maxLength":8192,"description":"GPS latitude of the search origin in decimal degrees, e.g. \"41.9028\"; send with lon; omitted uses source default. No option surcharge; 5 credits per successful request."},"lon":{"type":"string","maxLength":8192,"description":"GPS longitude of the search origin in decimal degrees, e.g. \"12.4964\"; send with lat; omitted uses source default. No option surcharge; 5 credits per successful request."}},"required":["query"]}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"bing_data":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"},"rank":{"type":"number"}},"additionalProperties":true}}},"additionalProperties":true,"description":"JSON object with bing_data containing ranked title, link and snippet fields."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"Bing web search results","description":"Bing web search results API for AI agents: JSON object with bing_data containing ranked title, link and snippet fields, with market, safe search and location targeting. For source discovery and research when Bing results are wanted rather than Google results."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/bing-search-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/bing"}}},"x-output-schema":{"type":"object","properties":{"bing_data":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"},"rank":{"type":"number"}},"additionalProperties":true}}},"additionalProperties":true,"description":"JSON object with bing_data containing ranked title, link and snippet fields."},"x-input-example":{"query":"what is api"},"x-output-example":{"bing_data":[{"title":"What is an API?","link":"https://example.com/api","snippet":"An interface between applications.","rank":1}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"parameters":[{"name":"query","in":"query","required":true,"description":"Required web search keywords, e.g. \"what is an api\"; no default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192,"example":"what is api"},"example":"what is api"},{"name":"mkt","in":"query","required":false,"description":"Market as language-COUNTRY, e.g. \"en-US\" or \"it-IT\"; omit for source default, mutually exclusive with cc. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"cc","in":"query","required":false,"description":"Two-letter country code, e.g. \"us\" or \"it\"; omit for source default, mutually exclusive with mkt. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"first","in":"query","required":false,"description":"One-based position of the first result, integer at least 1, e.g. 11 to start at the 11th result; default 1. No option surcharge; 5 credits per successful request.","schema":{"type":"integer","minimum":1}},{"name":"count","in":"query","required":false,"description":"Requested result count, integer 1-50, e.g. 20; actual count varies, omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"integer","minimum":1,"maximum":50}},{"name":"safeSearch","in":"query","required":false,"description":"Adult-content filter: Off, Moderate or Strict, e.g. \"Strict\"; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","enum":["Off","Moderate","Strict"]}},{"name":"filters","in":"query","required":false,"description":"Opaque Bing filters copied from a Bing search URL; omitted means no explicit filter. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"lat","in":"query","required":false,"description":"GPS latitude of the search origin in decimal degrees, e.g. \"41.9028\"; send with lon; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"lon","in":"query","required":false,"description":"GPS longitude of the search origin in decimal degrees, e.g. \"12.4964\"; send with lat; omitted uses source default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}],"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"bing_data":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"},"rank":{"type":"number"}},"additionalProperties":true}}},"additionalProperties":true,"description":"JSON object with bing_data containing ranked title, link and snippet fields."},"example":{"bing_data":[{"title":"What is an API?","link":"https://example.com/api","snippet":"An interface between applications.","rank":1}]}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}}},"post":{"operationId":"x402PostBing","summary":"Bing web search results","description":"Bing web search results API for AI agents: JSON object with bing_data containing ranked title, link and snippet fields, with market, safe search and location targeting. For source discovery and research when Bing results are wanted rather than Google results. Provided by Bing web search results. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send a JSON body. An empty unpaid probe returns 402; a paid retry requires valid input. Only successful calls settle.","tags":["search","bing"],"x-category":"search","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/bing","description":"Bing web search results API for AI agents: JSON object with bing_data containing ranked title, link and snippet fields, with market, safe search and location targeting. For source discovery and research when Bing results are wanted rather than Google results. Provided by Bing web search results. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/bing-search-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"query":"what is api"},"method":"POST"},"output":{"type":"json","example":{"bing_data":[{"title":"What is an API?","link":"https://example.com/api","snippet":"An interface between applications.","rank":1}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/bing-search-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","description":"Required web search keywords; no default.","examples":[{"query":"what is api"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required web search keywords, e.g. \"what is an api\"; no default. No option surcharge; 5 credits per successful request.","examples":["what is api"]},"mkt":{"type":"string","maxLength":8192,"description":"Market as language-COUNTRY, e.g. \"en-US\" or \"it-IT\"; omit for source default, mutually exclusive with cc. No option surcharge; 5 credits per successful request."},"cc":{"type":"string","maxLength":8192,"description":"Two-letter country code, e.g. \"us\" or \"it\"; omit for source default, mutually exclusive with mkt. No option surcharge; 5 credits per successful request."},"first":{"type":"integer","minimum":1,"description":"One-based position of the first result, integer at least 1, e.g. 11 to start at the 11th result; default 1. No option surcharge; 5 credits per successful request."},"count":{"type":"integer","minimum":1,"maximum":50,"description":"Requested result count, integer 1-50, e.g. 20; actual count varies, omitted uses source default. No option surcharge; 5 credits per successful request."},"safeSearch":{"type":"string","enum":["Off","Moderate","Strict"],"description":"Adult-content filter: Off, Moderate or Strict, e.g. \"Strict\"; omitted uses source default. No option surcharge; 5 credits per successful request."},"filters":{"type":"string","maxLength":8192,"description":"Opaque Bing filters copied from a Bing search URL; omitted means no explicit filter. No option surcharge; 5 credits per successful request."},"lat":{"type":"string","maxLength":8192,"description":"GPS latitude of the search origin in decimal degrees, e.g. \"41.9028\"; send with lon; omitted uses source default. No option surcharge; 5 credits per successful request."},"lon":{"type":"string","maxLength":8192,"description":"GPS longitude of the search origin in decimal degrees, e.g. \"12.4964\"; send with lat; omitted uses source default. No option surcharge; 5 credits per successful request."}},"required":["query"]}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"bing_data":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"},"rank":{"type":"number"}},"additionalProperties":true}}},"additionalProperties":true,"description":"JSON object with bing_data containing ranked title, link and snippet fields."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"Bing web search results","description":"Bing web search results API for AI agents: JSON object with bing_data containing ranked title, link and snippet fields, with market, safe search and location targeting. For source discovery and research when Bing results are wanted rather than Google results."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/bing-search-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/bing"}}},"x-output-schema":{"type":"object","properties":{"bing_data":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"},"rank":{"type":"number"}},"additionalProperties":true}}},"additionalProperties":true,"description":"JSON object with bing_data containing ranked title, link and snippet fields."},"x-input-example":{"query":"what is api"},"x-output-example":{"bing_data":[{"title":"What is an API?","link":"https://example.com/api","snippet":"An interface between applications.","rank":1}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"bing_data":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"},"rank":{"type":"number"}},"additionalProperties":true}}},"additionalProperties":true,"description":"JSON object with bing_data containing ranked title, link and snippet fields."},"example":{"bing_data":[{"title":"What is an API?","link":"https://example.com/api","snippet":"An interface between applications.","rank":1}]}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Required web search keywords; no default.","examples":[{"query":"what is api"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required web search keywords, e.g. \"what is an api\"; no default. No option surcharge; 5 credits per successful request.","examples":["what is api"]},"mkt":{"type":"string","maxLength":8192,"description":"Market as language-COUNTRY, e.g. \"en-US\" or \"it-IT\"; omit for source default, mutually exclusive with cc. No option surcharge; 5 credits per successful request."},"cc":{"type":"string","maxLength":8192,"description":"Two-letter country code, e.g. \"us\" or \"it\"; omit for source default, mutually exclusive with mkt. No option surcharge; 5 credits per successful request."},"first":{"type":"integer","minimum":1,"description":"One-based position of the first result, integer at least 1, e.g. 11 to start at the 11th result; default 1. No option surcharge; 5 credits per successful request."},"count":{"type":"integer","minimum":1,"maximum":50,"description":"Requested result count, integer 1-50, e.g. 20; actual count varies, omitted uses source default. No option surcharge; 5 credits per successful request."},"safeSearch":{"type":"string","enum":["Off","Moderate","Strict"],"description":"Adult-content filter: Off, Moderate or Strict, e.g. \"Strict\"; omitted uses source default. No option surcharge; 5 credits per successful request."},"filters":{"type":"string","maxLength":8192,"description":"Opaque Bing filters copied from a Bing search URL; omitted means no explicit filter. No option surcharge; 5 credits per successful request."},"lat":{"type":"string","maxLength":8192,"description":"GPS latitude of the search origin in decimal degrees, e.g. \"41.9028\"; send with lon; omitted uses source default. No option surcharge; 5 credits per successful request."},"lon":{"type":"string","maxLength":8192,"description":"GPS longitude of the search origin in decimal degrees, e.g. \"12.4964\"; send with lat; omitted uses source default. No option surcharge; 5 credits per successful request."}},"required":["query"]},"example":{"query":"what is api"}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}]}},"/x402/v1/images":{"get":{"operationId":"x402GetImages","summary":"Google Images search results","description":"Google Images search results API for AI agents: Google Images JSON with image results, thumbnails, original image URLs, source links and dimensions when available, with size, colour, type and licence filters. For finding reference images and their source pages. Image rights remain with the source. Provided by Google Images search results. Price: $0.010000 USDC fixed per successful call. Docs: https://fastaf.co Send query parameters, not a JSON body. The PAYMENT-REQUIRED header quotes the fixed price of this endpoint; options that cost more than it (SERP advance_search, scrape with rendering plus premium proxies or AI extraction) return 400 options_need_api_key before payment and need an API key. Sign it with an x402 v2 client and retry the same URL with PAYMENT-SIGNATURE. Invalid parameters or blocked targets return 402 when unsigned, or 400 before payment verification/settlement when signed. Only successful calls are settled.","tags":["search","images"],"x-category":"search","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/images","description":"Google Images search results API for AI agents: Google Images JSON with image results, thumbnails, original image URLs, source links and dimensions when available, with size, colour, type and licence filters. For finding reference images and their source pages. Image rights remain with the source. Provided by Google Images search results. Price: $0.010000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-images-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"query":"espresso machine"},"method":"GET"},"output":{"type":"json","example":{"images_results":[{"title":"Espresso machine","original":"https://example.com/espresso.jpg","link":"https://example.com/espresso","original_width":1200,"original_height":800,"image":"https://example.com/thumb.jpg"}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-images-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET"]},"queryParams":{"type":"object","description":"Required Google Images search keywords; no default.","examples":[{"query":"espresso machine"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required Google Images search keywords, e.g. \"espresso machine\"; no default. No option surcharge; 10 credits per successful request.","examples":["espresso machine"]},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. \"it\"; default us. No option surcharge; 10 credits per successful request."},"language":{"type":"string","maxLength":8192,"description":"Result language code, e.g. \"it\"; default en. No option surcharge; 10 credits per successful request."},"domain":{"type":"string","maxLength":8192,"description":"Google search domain, e.g. \"google.co.uk\"; default google.com. No option surcharge; 10 credits per successful request."},"page":{"type":"integer","minimum":0,"description":"Zero-based results page, integer at least 0, e.g. 1 for the second page; default 0. No option surcharge; 10 credits per successful request."},"safe":{"type":"string","maxLength":8192,"description":"Adult-content filter: active or off, e.g. \"active\"; default off. No option surcharge; 10 credits per successful request."},"tbs":{"type":"string","maxLength":8192,"description":"Advanced Google Images filter expression copied from a search URL, e.g. \"qdr:w\" for the past week; omitted means no filter. No option surcharge; 10 credits per successful request."},"imgar":{"type":"string","maxLength":8192,"description":"Aspect ratio: s (square), t (tall), w (wide), xw (panoramic), e.g. \"w\"; omitted means any. No option surcharge; 10 credits per successful request."},"imgsz":{"type":"string","maxLength":8192,"description":"Image size such as l, m, i, vga or 2mp, e.g. \"l\" for large; omitted means any size. No option surcharge; 10 credits per successful request."},"image_color":{"type":"string","maxLength":8192,"description":"Color filter such as bw, trans, red, blue or white, e.g. \"bw\"; omitted means any color. No option surcharge; 10 credits per successful request."},"image_type":{"type":"string","maxLength":8192,"description":"Image type: face, photo, clipart, lineart or animated, e.g. \"photo\"; omitted means any type. No option surcharge; 10 credits per successful request."},"licenses":{"type":"string","maxLength":8192,"description":"License filter: f, fc, fm, fmc, cl or ol, e.g. \"cl\"; omitted means any license. Verify rights with the source before reuse. No option surcharge; 10 credits per successful request."},"html":{"type":"boolean","description":"Return raw source HTML when true; default false. No option surcharge; 10 credits per successful request."}},"required":["query"]}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"images_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"original":{"type":"string"},"link":{"type":"string"},"original_width":{"type":"number"},"original_height":{"type":"number"},"image":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Images JSON with image results, thumbnails, original image URLs, source links and dimensions when available. Image rights remain with the source."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"Google Images search results","description":"Google Images search results API for AI agents: Google Images JSON with image results, thumbnails, original image URLs, source links and dimensions when available, with size, colour, type and licence filters. For finding reference images and their source pages. Image rights remain with the source."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-images-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/images"}}},"x-output-schema":{"anyOf":[{"type":"object","properties":{"images_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"original":{"type":"string"},"link":{"type":"string"},"original_width":{"type":"number"},"original_height":{"type":"number"},"image":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Images JSON with image results, thumbnails, original image URLs, source links and dimensions when available. Image rights remain with the source."},{"type":"string"}]},"x-input-example":{"query":"espresso machine"},"x-output-example":{"images_results":[{"title":"Espresso machine","original":"https://example.com/espresso.jpg","link":"https://example.com/espresso","original_width":1200,"original_height":800,"image":"https://example.com/thumb.jpg"}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.010000"}},"parameters":[{"name":"query","in":"query","required":true,"description":"Required Google Images search keywords, e.g. \"espresso machine\"; no default. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192,"example":"espresso machine"},"example":"espresso machine"},{"name":"country","in":"query","required":false,"description":"Two-letter search country code, e.g. \"it\"; default us. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"language","in":"query","required":false,"description":"Result language code, e.g. \"it\"; default en. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"domain","in":"query","required":false,"description":"Google search domain, e.g. \"google.co.uk\"; default google.com. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"page","in":"query","required":false,"description":"Zero-based results page, integer at least 0, e.g. 1 for the second page; default 0. No option surcharge; 10 credits per successful request.","schema":{"type":"integer","minimum":0}},{"name":"safe","in":"query","required":false,"description":"Adult-content filter: active or off, e.g. \"active\"; default off. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"tbs","in":"query","required":false,"description":"Advanced Google Images filter expression copied from a search URL, e.g. \"qdr:w\" for the past week; omitted means no filter. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"imgar","in":"query","required":false,"description":"Aspect ratio: s (square), t (tall), w (wide), xw (panoramic), e.g. \"w\"; omitted means any. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"imgsz","in":"query","required":false,"description":"Image size such as l, m, i, vga or 2mp, e.g. \"l\" for large; omitted means any size. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"image_color","in":"query","required":false,"description":"Color filter such as bw, trans, red, blue or white, e.g. \"bw\"; omitted means any color. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"image_type","in":"query","required":false,"description":"Image type: face, photo, clipart, lineart or animated, e.g. \"photo\"; omitted means any type. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"licenses","in":"query","required":false,"description":"License filter: f, fc, fm, fmc, cl or ol, e.g. \"cl\"; omitted means any license. Verify rights with the source before reuse. No option surcharge; 10 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"html","in":"query","required":false,"description":"Return raw source HTML when true; default false. No option surcharge; 10 credits per successful request.","schema":{"type":"boolean"}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}],"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"images_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"original":{"type":"string"},"link":{"type":"string"},"original_width":{"type":"number"},"original_height":{"type":"number"},"image":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Images JSON with image results, thumbnails, original image URLs, source links and dimensions when available. Image rights remain with the source."},"example":{"images_results":[{"title":"Espresso machine","original":"https://example.com/espresso.jpg","link":"https://example.com/espresso","original_width":1200,"original_height":800,"image":"https://example.com/thumb.jpg"}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}}},"post":{"operationId":"x402PostImages","summary":"Google Images search results","description":"Google Images search results API for AI agents: Google Images JSON with image results, thumbnails, original image URLs, source links and dimensions when available, with size, colour, type and licence filters. For finding reference images and their source pages. Image rights remain with the source. Provided by Google Images search results. Price: $0.010000 USDC fixed per successful call. Docs: https://fastaf.co Send a JSON body. An empty unpaid probe returns 402; a paid retry requires valid input. Only successful calls settle.","tags":["search","images"],"x-category":"search","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/images","description":"Google Images search results API for AI agents: Google Images JSON with image results, thumbnails, original image URLs, source links and dimensions when available, with size, colour, type and licence filters. For finding reference images and their source pages. Image rights remain with the source. Provided by Google Images search results. Price: $0.010000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-images-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"query":"espresso machine"},"method":"POST"},"output":{"type":"json","example":{"images_results":[{"title":"Espresso machine","original":"https://example.com/espresso.jpg","link":"https://example.com/espresso","original_width":1200,"original_height":800,"image":"https://example.com/thumb.jpg"}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-images-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","description":"Required Google Images search keywords; no default.","examples":[{"query":"espresso machine"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required Google Images search keywords, e.g. \"espresso machine\"; no default. No option surcharge; 10 credits per successful request.","examples":["espresso machine"]},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. \"it\"; default us. No option surcharge; 10 credits per successful request."},"language":{"type":"string","maxLength":8192,"description":"Result language code, e.g. \"it\"; default en. No option surcharge; 10 credits per successful request."},"domain":{"type":"string","maxLength":8192,"description":"Google search domain, e.g. \"google.co.uk\"; default google.com. No option surcharge; 10 credits per successful request."},"page":{"type":"integer","minimum":0,"description":"Zero-based results page, integer at least 0, e.g. 1 for the second page; default 0. No option surcharge; 10 credits per successful request."},"safe":{"type":"string","maxLength":8192,"description":"Adult-content filter: active or off, e.g. \"active\"; default off. No option surcharge; 10 credits per successful request."},"tbs":{"type":"string","maxLength":8192,"description":"Advanced Google Images filter expression copied from a search URL, e.g. \"qdr:w\" for the past week; omitted means no filter. No option surcharge; 10 credits per successful request."},"imgar":{"type":"string","maxLength":8192,"description":"Aspect ratio: s (square), t (tall), w (wide), xw (panoramic), e.g. \"w\"; omitted means any. No option surcharge; 10 credits per successful request."},"imgsz":{"type":"string","maxLength":8192,"description":"Image size such as l, m, i, vga or 2mp, e.g. \"l\" for large; omitted means any size. No option surcharge; 10 credits per successful request."},"image_color":{"type":"string","maxLength":8192,"description":"Color filter such as bw, trans, red, blue or white, e.g. \"bw\"; omitted means any color. No option surcharge; 10 credits per successful request."},"image_type":{"type":"string","maxLength":8192,"description":"Image type: face, photo, clipart, lineart or animated, e.g. \"photo\"; omitted means any type. No option surcharge; 10 credits per successful request."},"licenses":{"type":"string","maxLength":8192,"description":"License filter: f, fc, fm, fmc, cl or ol, e.g. \"cl\"; omitted means any license. Verify rights with the source before reuse. No option surcharge; 10 credits per successful request."},"html":{"type":"boolean","description":"Return raw source HTML when true; default false. No option surcharge; 10 credits per successful request."}},"required":["query"]}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"images_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"original":{"type":"string"},"link":{"type":"string"},"original_width":{"type":"number"},"original_height":{"type":"number"},"image":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Images JSON with image results, thumbnails, original image URLs, source links and dimensions when available. Image rights remain with the source."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"Google Images search results","description":"Google Images search results API for AI agents: Google Images JSON with image results, thumbnails, original image URLs, source links and dimensions when available, with size, colour, type and licence filters. For finding reference images and their source pages. Image rights remain with the source."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-images-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/images"}}},"x-output-schema":{"anyOf":[{"type":"object","properties":{"images_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"original":{"type":"string"},"link":{"type":"string"},"original_width":{"type":"number"},"original_height":{"type":"number"},"image":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Images JSON with image results, thumbnails, original image URLs, source links and dimensions when available. Image rights remain with the source."},{"type":"string"}]},"x-input-example":{"query":"espresso machine"},"x-output-example":{"images_results":[{"title":"Espresso machine","original":"https://example.com/espresso.jpg","link":"https://example.com/espresso","original_width":1200,"original_height":800,"image":"https://example.com/thumb.jpg"}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.010000"}},"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"images_results":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"original":{"type":"string"},"link":{"type":"string"},"original_width":{"type":"number"},"original_height":{"type":"number"},"image":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Google Images JSON with image results, thumbnails, original image URLs, source links and dimensions when available. Image rights remain with the source."},"example":{"images_results":[{"title":"Espresso machine","original":"https://example.com/espresso.jpg","link":"https://example.com/espresso","original_width":1200,"original_height":800,"image":"https://example.com/thumb.jpg"}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Required Google Images search keywords; no default.","examples":[{"query":"espresso machine"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required Google Images search keywords, e.g. \"espresso machine\"; no default. No option surcharge; 10 credits per successful request.","examples":["espresso machine"]},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. \"it\"; default us. No option surcharge; 10 credits per successful request."},"language":{"type":"string","maxLength":8192,"description":"Result language code, e.g. \"it\"; default en. No option surcharge; 10 credits per successful request."},"domain":{"type":"string","maxLength":8192,"description":"Google search domain, e.g. \"google.co.uk\"; default google.com. No option surcharge; 10 credits per successful request."},"page":{"type":"integer","minimum":0,"description":"Zero-based results page, integer at least 0, e.g. 1 for the second page; default 0. No option surcharge; 10 credits per successful request."},"safe":{"type":"string","maxLength":8192,"description":"Adult-content filter: active or off, e.g. \"active\"; default off. No option surcharge; 10 credits per successful request."},"tbs":{"type":"string","maxLength":8192,"description":"Advanced Google Images filter expression copied from a search URL, e.g. \"qdr:w\" for the past week; omitted means no filter. No option surcharge; 10 credits per successful request."},"imgar":{"type":"string","maxLength":8192,"description":"Aspect ratio: s (square), t (tall), w (wide), xw (panoramic), e.g. \"w\"; omitted means any. No option surcharge; 10 credits per successful request."},"imgsz":{"type":"string","maxLength":8192,"description":"Image size such as l, m, i, vga or 2mp, e.g. \"l\" for large; omitted means any size. No option surcharge; 10 credits per successful request."},"image_color":{"type":"string","maxLength":8192,"description":"Color filter such as bw, trans, red, blue or white, e.g. \"bw\"; omitted means any color. No option surcharge; 10 credits per successful request."},"image_type":{"type":"string","maxLength":8192,"description":"Image type: face, photo, clipart, lineart or animated, e.g. \"photo\"; omitted means any type. No option surcharge; 10 credits per successful request."},"licenses":{"type":"string","maxLength":8192,"description":"License filter: f, fc, fm, fmc, cl or ol, e.g. \"cl\"; omitted means any license. Verify rights with the source before reuse. No option surcharge; 10 credits per successful request."},"html":{"type":"boolean","description":"Return raw source HTML when true; default false. No option surcharge; 10 credits per successful request."}},"required":["query"]},"example":{"query":"espresso machine"}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}]}},"/x402/v1/reddit":{"get":{"operationId":"x402GetReddit","summary":"Public Reddit feed","description":"Public Reddit feed API for AI agents: reads a public subreddit or thread URL and returns Markdown (formats=markdown) or HTML with titles, dates, links and post text. For community monitoring and discussion research. Author usernames and profile links are removed; RSS coverage can be partial; rate limits return an error without charge. Provided by Public Reddit feed. Price: $0.003000 USDC fixed per successful call. Docs: https://fastaf.co Send query parameters, not a JSON body. The PAYMENT-REQUIRED header quotes the fixed price of this endpoint; options that cost more than it (SERP advance_search, scrape with rendering plus premium proxies or AI extraction) return 400 options_need_api_key before payment and need an API key. Sign it with an x402 v2 client and retry the same URL with PAYMENT-SIGNATURE. Invalid parameters or blocked targets return 402 when unsigned, or 400 before payment verification/settlement when signed. Only successful calls are settled.","tags":["social","reddit"],"x-category":"social","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/reddit","description":"Public Reddit feed API for AI agents: reads a public subreddit or thread URL and returns Markdown (formats=markdown) or HTML with titles, dates, links and post text. For community monitoring and discussion research. Author usernames and profile links are removed; RSS coverage can be partial; rate limits return an error without charge. Provided by Public Reddit feed. Price: $0.003000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/reddit-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"text/html"},"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"url":"https://www.reddit.com/r/python/","formats":"markdown"},"method":"GET"},"output":{"type":"text","example":"# Python\n\n## [Weekly discussion](https://www.reddit.com/r/python/comments/abc123/weekly/)\n2026-10-27T12:00:00Z\n\nDiscuss Python projects.\n","format":"text/markdown"},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/reddit-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET"]},"queryParams":{"type":"object","description":"Required public reddit.com subreddit or thread URL, e.g. https://www.reddit.com/r/python/; no default. Reads the public RSS feed only.","examples":[{"url":"https://www.reddit.com/r/python/","formats":"markdown"}],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","description":"Required public reddit.com subreddit or thread URL, e.g. https://www.reddit.com/r/python/ or https://www.reddit.com/r/python/comments/abc123/; no default. Reads the public RSS feed only; user pages are refused. No option surcharge; 1 credits per successful request.","examples":["https://www.reddit.com/r/python/"]},"formats":{"type":"string","enum":["html","markdown"],"default":"html","description":"Response format: html (default) or markdown. Feeds may contain fewer posts or comments than the website. No option surcharge; 1 credits per successful request.","examples":["markdown"]}},"required":["url"]}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"string","description":"Markdown text for formats=markdown; HTML by default. Public feed entries include titles, dates, links and content; author usernames and links to user profiles are removed. RSS coverage can be partial; rate limits return an error without charge."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"Public Reddit feed","description":"Public Reddit feed API for AI agents: reads a public subreddit or thread URL and returns Markdown (formats=markdown) or HTML with titles, dates, links and post text. For community monitoring and discussion research. Author usernames and profile links are removed; RSS coverage can be partial; rate limits return an error without charge."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/reddit-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/reddit"}}},"x-output-schema":{"type":"string"},"x-input-example":{"url":"https://www.reddit.com/r/python/","formats":"markdown"},"x-output-example":"# Python\n\n## [Weekly discussion](https://www.reddit.com/r/python/comments/abc123/weekly/)\n2026-10-27T12:00:00Z\n\nDiscuss Python projects.\n","security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.003000"}},"parameters":[{"name":"url","in":"query","required":true,"description":"Required public reddit.com subreddit or thread URL, e.g. https://www.reddit.com/r/python/ or https://www.reddit.com/r/python/comments/abc123/; no default. Reads the public RSS feed only; user pages are refused. No option surcharge; 1 credits per successful request.","schema":{"type":"string","format":"uri","pattern":"^https?://","example":"https://www.reddit.com/r/python/"},"example":"https://www.reddit.com/r/python/"},{"name":"formats","in":"query","required":false,"description":"Response format: html (default) or markdown. Feeds may contain fewer posts or comments than the website. No option surcharge; 1 credits per successful request.","schema":{"type":"string","enum":["html","markdown"],"default":"html","example":"markdown"},"example":"markdown"},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}],"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"text/html":{"schema":{"type":"string"}},"text/markdown":{"schema":{"type":"string"},"example":"# Python\n\n## [Weekly discussion](https://www.reddit.com/r/python/comments/abc123/weekly/)\n2026-10-27T12:00:00Z\n\nDiscuss Python projects.\n"}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}}},"post":{"operationId":"x402PostReddit","summary":"Public Reddit feed","description":"Public Reddit feed API for AI agents: reads a public subreddit or thread URL and returns Markdown (formats=markdown) or HTML with titles, dates, links and post text. For community monitoring and discussion research. Author usernames and profile links are removed; RSS coverage can be partial; rate limits return an error without charge. Provided by Public Reddit feed. Price: $0.003000 USDC fixed per successful call. Docs: https://fastaf.co Send a JSON body. An empty unpaid probe returns 402; a paid retry requires valid input. Only successful calls settle.","tags":["social","reddit"],"x-category":"social","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/reddit","description":"Public Reddit feed API for AI agents: reads a public subreddit or thread URL and returns Markdown (formats=markdown) or HTML with titles, dates, links and post text. For community monitoring and discussion research. Author usernames and profile links are removed; RSS coverage can be partial; rate limits return an error without charge. Provided by Public Reddit feed. Price: $0.003000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/reddit-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"text/html"},"extensions":{"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"url":"https://www.reddit.com/r/python/","formats":"markdown"},"method":"POST"},"output":{"type":"text","example":"# Python\n\n## [Weekly discussion](https://www.reddit.com/r/python/comments/abc123/weekly/)\n2026-10-27T12:00:00Z\n\nDiscuss Python projects.\n","format":"text/markdown"},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/reddit-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","description":"Required public reddit.com subreddit or thread URL, e.g. https://www.reddit.com/r/python/; no default. Reads the public RSS feed only.","examples":[{"url":"https://www.reddit.com/r/python/","formats":"markdown"}],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","description":"Required public reddit.com subreddit or thread URL, e.g. https://www.reddit.com/r/python/ or https://www.reddit.com/r/python/comments/abc123/; no default. Reads the public RSS feed only; user pages are refused. No option surcharge; 1 credits per successful request.","examples":["https://www.reddit.com/r/python/"]},"formats":{"type":"string","enum":["html","markdown"],"default":"html","description":"Response format: html (default) or markdown. Feeds may contain fewer posts or comments than the website. No option surcharge; 1 credits per successful request.","examples":["markdown"]}},"required":["url"]}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"string","description":"Markdown text for formats=markdown; HTML by default. Public feed entries include titles, dates, links and content; author usernames and links to user profiles are removed. RSS coverage can be partial; rate limits return an error without charge."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"Public Reddit feed","description":"Public Reddit feed API for AI agents: reads a public subreddit or thread URL and returns Markdown (formats=markdown) or HTML with titles, dates, links and post text. For community monitoring and discussion research. Author usernames and profile links are removed; RSS coverage can be partial; rate limits return an error without charge."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/reddit-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/reddit"}}},"x-output-schema":{"type":"string"},"x-input-example":{"url":"https://www.reddit.com/r/python/","formats":"markdown"},"x-output-example":"# Python\n\n## [Weekly discussion](https://www.reddit.com/r/python/comments/abc123/weekly/)\n2026-10-27T12:00:00Z\n\nDiscuss Python projects.\n","security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.003000"}},"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"text/html":{"schema":{"type":"string"}},"text/markdown":{"schema":{"type":"string"},"example":"# Python\n\n## [Weekly discussion](https://www.reddit.com/r/python/comments/abc123/weekly/)\n2026-10-27T12:00:00Z\n\nDiscuss Python projects.\n"}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Required public reddit.com subreddit or thread URL, e.g. https://www.reddit.com/r/python/; no default. Reads the public RSS feed only.","examples":[{"url":"https://www.reddit.com/r/python/","formats":"markdown"}],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","description":"Required public reddit.com subreddit or thread URL, e.g. https://www.reddit.com/r/python/ or https://www.reddit.com/r/python/comments/abc123/; no default. Reads the public RSS feed only; user pages are refused. No option surcharge; 1 credits per successful request.","examples":["https://www.reddit.com/r/python/"]},"formats":{"type":"string","enum":["html","markdown"],"default":"html","description":"Response format: html (default) or markdown. Feeds may contain fewer posts or comments than the website. No option surcharge; 1 credits per successful request.","examples":["markdown"]}},"required":["url"]},"example":{"url":"https://www.reddit.com/r/python/","formats":"markdown"}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}]}},"/x402/v1/walmart":{"get":{"operationId":"x402GetWalmart","summary":"FastAF Walmart Product Data","description":"Walmart product search API for AI agents: retrieve listings from a Walmart search URL as JSON search_results containing item arrays. Includes product titles, prices, ratings, availability and seller details when available for ecommerce research. Provided by FastAF Walmart Product Data. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send query parameters, not a JSON body. The PAYMENT-REQUIRED header quotes the fixed price of this endpoint; options that cost more than it (SERP advance_search, scrape with rendering plus premium proxies or AI extraction) return 400 options_need_api_key before payment and need an API key. Sign it with an x402 v2 client and retry the same URL with PAYMENT-SIGNATURE. Invalid parameters or blocked targets return 402 when unsigned, or 400 before payment verification/settlement when signed. Only successful calls are settled.","tags":["ecommerce","walmart","prices"],"x-category":"ecommerce","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/walmart","description":"Walmart product search API for AI agents: retrieve listings from a Walmart search URL as JSON search_results containing item arrays. Includes product titles, prices, ratings, availability and seller details when available for ecommerce research. Provided by FastAF Walmart Product Data. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/walmart-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"url":"https://www.walmart.com/search?q=headphones"},"method":"GET"},"output":{"type":"json","example":{"search_results":[{"item":[{"title":"Wireless over-ear headphones","current_price":"$24.99","rating":4.4,"review_count":238,"availability_status":"In stock","seller_name":"Walmart.com"}]}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/walmart-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET"]},"queryParams":{"type":"object","description":"Walmart product search by a complete Walmart search URL containing the search query.","examples":[{"url":"https://www.walmart.com/search?q=headphones"}],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","description":"Required full HTTP(S) walmart.com search URL, e.g. https://www.walmart.com/search?q=headphones. Include search, page and filter options in that URL; no default. No option surcharge; 5 credits per successful request.","examples":["https://www.walmart.com/search?q=headphones"]}},"required":["url"]}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"search_results":{"type":"array","items":{"type":"object","properties":{"item":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"current_price":{"type":"string"},"rating":{"type":"number"},"review_count":{"type":"number"},"availability_status":{"type":"string"},"seller_name":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true}}},"additionalProperties":true,"description":"Walmart JSON. search_results is an array of groups, each containing an item array with titles, current_price, rating, review_count and availability_status when available."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF Walmart Product Data","description":"Walmart product search API for AI agents: retrieve listings from a Walmart search URL as JSON search_results containing item arrays. Includes product titles, prices, ratings, availability and seller details when available for ecommerce research."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/walmart-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/walmart"}}},"x-output-schema":{"type":"object","properties":{"search_results":{"type":"array","items":{"type":"object","properties":{"item":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"current_price":{"type":"string"},"rating":{"type":"number"},"review_count":{"type":"number"},"availability_status":{"type":"string"},"seller_name":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true}}},"additionalProperties":true,"description":"Walmart JSON. search_results is an array of groups, each containing an item array with titles, current_price, rating, review_count and availability_status when available."},"x-input-example":{"url":"https://www.walmart.com/search?q=headphones"},"x-output-example":{"search_results":[{"item":[{"title":"Wireless over-ear headphones","current_price":"$24.99","rating":4.4,"review_count":238,"availability_status":"In stock","seller_name":"Walmart.com"}]}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"parameters":[{"name":"url","in":"query","required":true,"description":"Required full HTTP(S) walmart.com search URL, e.g. https://www.walmart.com/search?q=headphones. Include search, page and filter options in that URL; no default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","format":"uri","pattern":"^https?://","example":"https://www.walmart.com/search?q=headphones"},"example":"https://www.walmart.com/search?q=headphones"},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}],"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"search_results":{"type":"array","items":{"type":"object","properties":{"item":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"current_price":{"type":"string"},"rating":{"type":"number"},"review_count":{"type":"number"},"availability_status":{"type":"string"},"seller_name":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true}}},"additionalProperties":true,"description":"Walmart JSON. search_results is an array of groups, each containing an item array with titles, current_price, rating, review_count and availability_status when available."},"example":{"search_results":[{"item":[{"title":"Wireless over-ear headphones","current_price":"$24.99","rating":4.4,"review_count":238,"availability_status":"In stock","seller_name":"Walmart.com"}]}]}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}}},"post":{"operationId":"x402PostWalmart","summary":"FastAF Walmart Product Data","description":"Walmart product search API for AI agents: retrieve listings from a Walmart search URL as JSON search_results containing item arrays. Includes product titles, prices, ratings, availability and seller details when available for ecommerce research. Provided by FastAF Walmart Product Data. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send a JSON body. An empty unpaid probe returns 402; a paid retry requires valid input. Only successful calls settle.","tags":["ecommerce","walmart","prices"],"x-category":"ecommerce","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/walmart","description":"Walmart product search API for AI agents: retrieve listings from a Walmart search URL as JSON search_results containing item arrays. Includes product titles, prices, ratings, availability and seller details when available for ecommerce research. Provided by FastAF Walmart Product Data. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/walmart-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"url":"https://www.walmart.com/search?q=headphones"},"method":"POST"},"output":{"type":"json","example":{"search_results":[{"item":[{"title":"Wireless over-ear headphones","current_price":"$24.99","rating":4.4,"review_count":238,"availability_status":"In stock","seller_name":"Walmart.com"}]}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/walmart-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","description":"Walmart product search by a complete Walmart search URL containing the search query.","examples":[{"url":"https://www.walmart.com/search?q=headphones"}],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","description":"Required full HTTP(S) walmart.com search URL, e.g. https://www.walmart.com/search?q=headphones. Include search, page and filter options in that URL; no default. No option surcharge; 5 credits per successful request.","examples":["https://www.walmart.com/search?q=headphones"]}},"required":["url"]}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"search_results":{"type":"array","items":{"type":"object","properties":{"item":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"current_price":{"type":"string"},"rating":{"type":"number"},"review_count":{"type":"number"},"availability_status":{"type":"string"},"seller_name":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true}}},"additionalProperties":true,"description":"Walmart JSON. search_results is an array of groups, each containing an item array with titles, current_price, rating, review_count and availability_status when available."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF Walmart Product Data","description":"Walmart product search API for AI agents: retrieve listings from a Walmart search URL as JSON search_results containing item arrays. Includes product titles, prices, ratings, availability and seller details when available for ecommerce research."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/walmart-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/walmart"}}},"x-output-schema":{"type":"object","properties":{"search_results":{"type":"array","items":{"type":"object","properties":{"item":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"current_price":{"type":"string"},"rating":{"type":"number"},"review_count":{"type":"number"},"availability_status":{"type":"string"},"seller_name":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true}}},"additionalProperties":true,"description":"Walmart JSON. search_results is an array of groups, each containing an item array with titles, current_price, rating, review_count and availability_status when available."},"x-input-example":{"url":"https://www.walmart.com/search?q=headphones"},"x-output-example":{"search_results":[{"item":[{"title":"Wireless over-ear headphones","current_price":"$24.99","rating":4.4,"review_count":238,"availability_status":"In stock","seller_name":"Walmart.com"}]}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"search_results":{"type":"array","items":{"type":"object","properties":{"item":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"current_price":{"type":"string"},"rating":{"type":"number"},"review_count":{"type":"number"},"availability_status":{"type":"string"},"seller_name":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true}}},"additionalProperties":true,"description":"Walmart JSON. search_results is an array of groups, each containing an item array with titles, current_price, rating, review_count and availability_status when available."},"example":{"search_results":[{"item":[{"title":"Wireless over-ear headphones","current_price":"$24.99","rating":4.4,"review_count":238,"availability_status":"In stock","seller_name":"Walmart.com"}]}]}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Walmart product search by a complete Walmart search URL containing the search query.","examples":[{"url":"https://www.walmart.com/search?q=headphones"}],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","description":"Required full HTTP(S) walmart.com search URL, e.g. https://www.walmart.com/search?q=headphones. Include search, page and filter options in that URL; no default. No option surcharge; 5 credits per successful request.","examples":["https://www.walmart.com/search?q=headphones"]}},"required":["url"]},"example":{"url":"https://www.walmart.com/search?q=headphones"}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}]}},"/x402/v1/zillow":{"get":{"operationId":"x402GetZillow","summary":"FastAF Zillow Property Listings","description":"Real estate and property listing search API for AI agents: Zillow search URLs return JSON zillow_data with prices, addresses, beds, baths and listing links, plus coordinates and Zestimate when available. Supports US housing research without generic page scraping. Provided by FastAF Zillow Property Listings. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send query parameters, not a JSON body. The PAYMENT-REQUIRED header quotes the fixed price of this endpoint; options that cost more than it (SERP advance_search, scrape with rendering plus premium proxies or AI extraction) return 400 options_need_api_key before payment and need an API key. Sign it with an x402 v2 client and retry the same URL with PAYMENT-SIGNATURE. Invalid parameters or blocked targets return 402 when unsigned, or 400 before payment verification/settlement when signed. Only successful calls are settled.","tags":["real-estate","zillow","listings"],"x-category":"real-estate","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/zillow","description":"Real estate and property listing search API for AI agents: Zillow search URLs return JSON zillow_data with prices, addresses, beds, baths and listing links, plus coordinates and Zestimate when available. Supports US housing research without generic page scraping. Provided by FastAF Zillow Property Listings. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/docs/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"url":"https://www.zillow.com/homes/Austin,-TX_rb/"},"method":"GET"},"output":{"type":"json","example":{"zillow_data":[{"zpid":"123456789","price":"$650,000","address":"123 Oak Lane, Austin, TX 78704","beds":3,"baths":2,"statusText":"House for sale","zestimate":648000,"latLong":{"latitude":30.245,"longitude":-97.765},"detailUrl":"https://www.zillow.com/homedetails/123456789_zpid/"}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/docs/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET"]},"queryParams":{"type":"object","description":"US property search by a complete Zillow search URL, such as the city _rb URL in the example.","examples":[{"url":"https://www.zillow.com/homes/Austin,-TX_rb/"}],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","description":"Required full HTTP(S) Zillow URL, e.g. https://www.zillow.com/homes/Austin,-TX_rb/. Short city paths such as /austin-tx/ are normalized. Aliases address, location, city, q, query, search become /homes/<encoded value>_rb/ URLs; digits-only zpid becomes /homedetails/<zpid>_zpid/. Canonical url takes precedence. No default; answers without listings are not charged. No option surcharge; 5 credits per successful request.","examples":["https://www.zillow.com/homes/Austin,-TX_rb/"]}},"required":["url"]}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"zillow_data":{"type":"array","items":{"type":"object","properties":{"zpid":{"type":"string"},"price":{"type":"string"},"address":{"type":"string"},"beds":{"type":"number"},"baths":{"type":"number"},"statusText":{"type":"string"},"zestimate":{"type":"number"},"latLong":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"additionalProperties":true},"detailUrl":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Zillow JSON. zillow_data contains listings with zpid, displayed price, address, beds, baths and detailUrl, plus statusText, latLong and zestimate when available."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF Zillow Property Listings","description":"Real estate and property listing search API for AI agents: Zillow search URLs return JSON zillow_data with prices, addresses, beds, baths and listing links, plus coordinates and Zestimate when available. Supports US housing research without generic page scraping."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/docs/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/zillow"}}},"x-output-schema":{"type":"object","properties":{"zillow_data":{"type":"array","items":{"type":"object","properties":{"zpid":{"type":"string"},"price":{"type":"string"},"address":{"type":"string"},"beds":{"type":"number"},"baths":{"type":"number"},"statusText":{"type":"string"},"zestimate":{"type":"number"},"latLong":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"additionalProperties":true},"detailUrl":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Zillow JSON. zillow_data contains listings with zpid, displayed price, address, beds, baths and detailUrl, plus statusText, latLong and zestimate when available."},"x-input-example":{"url":"https://www.zillow.com/homes/Austin,-TX_rb/"},"x-output-example":{"zillow_data":[{"zpid":"123456789","price":"$650,000","address":"123 Oak Lane, Austin, TX 78704","beds":3,"baths":2,"statusText":"House for sale","zestimate":648000,"latLong":{"latitude":30.245,"longitude":-97.765},"detailUrl":"https://www.zillow.com/homedetails/123456789_zpid/"}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"parameters":[{"name":"url","in":"query","required":true,"description":"Required full HTTP(S) Zillow URL, e.g. https://www.zillow.com/homes/Austin,-TX_rb/. Short city paths such as /austin-tx/ are normalized. Aliases address, location, city, q, query, search become /homes/<encoded value>_rb/ URLs; digits-only zpid becomes /homedetails/<zpid>_zpid/. Canonical url takes precedence. No default; answers without listings are not charged. No option surcharge; 5 credits per successful request.","schema":{"type":"string","format":"uri","pattern":"^https?://","example":"https://www.zillow.com/homes/Austin,-TX_rb/"},"example":"https://www.zillow.com/homes/Austin,-TX_rb/"},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}],"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"zillow_data":{"type":"array","items":{"type":"object","properties":{"zpid":{"type":"string"},"price":{"type":"string"},"address":{"type":"string"},"beds":{"type":"number"},"baths":{"type":"number"},"statusText":{"type":"string"},"zestimate":{"type":"number"},"latLong":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"additionalProperties":true},"detailUrl":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Zillow JSON. zillow_data contains listings with zpid, displayed price, address, beds, baths and detailUrl, plus statusText, latLong and zestimate when available."},"example":{"zillow_data":[{"zpid":"123456789","price":"$650,000","address":"123 Oak Lane, Austin, TX 78704","beds":3,"baths":2,"statusText":"House for sale","zestimate":648000,"latLong":{"latitude":30.245,"longitude":-97.765},"detailUrl":"https://www.zillow.com/homedetails/123456789_zpid/"}]}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}}},"post":{"operationId":"x402PostZillow","summary":"FastAF Zillow Property Listings","description":"Real estate and property listing search API for AI agents: Zillow search URLs return JSON zillow_data with prices, addresses, beds, baths and listing links, plus coordinates and Zestimate when available. Supports US housing research without generic page scraping. Provided by FastAF Zillow Property Listings. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send a JSON body. An empty unpaid probe returns 402; a paid retry requires valid input. Only successful calls settle.","tags":["real-estate","zillow","listings"],"x-category":"real-estate","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/zillow","description":"Real estate and property listing search API for AI agents: Zillow search URLs return JSON zillow_data with prices, addresses, beds, baths and listing links, plus coordinates and Zestimate when available. Supports US housing research without generic page scraping. Provided by FastAF Zillow Property Listings. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/docs/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"url":"https://www.zillow.com/homes/Austin,-TX_rb/"},"method":"POST"},"output":{"type":"json","example":{"zillow_data":[{"zpid":"123456789","price":"$650,000","address":"123 Oak Lane, Austin, TX 78704","beds":3,"baths":2,"statusText":"House for sale","zestimate":648000,"latLong":{"latitude":30.245,"longitude":-97.765},"detailUrl":"https://www.zillow.com/homedetails/123456789_zpid/"}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/docs/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","description":"US property search by a complete Zillow search URL, such as the city _rb URL in the example.","examples":[{"url":"https://www.zillow.com/homes/Austin,-TX_rb/"}],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","description":"Required full HTTP(S) Zillow URL, e.g. https://www.zillow.com/homes/Austin,-TX_rb/. Short city paths such as /austin-tx/ are normalized. Aliases address, location, city, q, query, search become /homes/<encoded value>_rb/ URLs; digits-only zpid becomes /homedetails/<zpid>_zpid/. Canonical url takes precedence. No default; answers without listings are not charged. No option surcharge; 5 credits per successful request.","examples":["https://www.zillow.com/homes/Austin,-TX_rb/"]}},"required":["url"]}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"zillow_data":{"type":"array","items":{"type":"object","properties":{"zpid":{"type":"string"},"price":{"type":"string"},"address":{"type":"string"},"beds":{"type":"number"},"baths":{"type":"number"},"statusText":{"type":"string"},"zestimate":{"type":"number"},"latLong":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"additionalProperties":true},"detailUrl":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Zillow JSON. zillow_data contains listings with zpid, displayed price, address, beds, baths and detailUrl, plus statusText, latLong and zestimate when available."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF Zillow Property Listings","description":"Real estate and property listing search API for AI agents: Zillow search URLs return JSON zillow_data with prices, addresses, beds, baths and listing links, plus coordinates and Zestimate when available. Supports US housing research without generic page scraping."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/docs/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/zillow"}}},"x-output-schema":{"type":"object","properties":{"zillow_data":{"type":"array","items":{"type":"object","properties":{"zpid":{"type":"string"},"price":{"type":"string"},"address":{"type":"string"},"beds":{"type":"number"},"baths":{"type":"number"},"statusText":{"type":"string"},"zestimate":{"type":"number"},"latLong":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"additionalProperties":true},"detailUrl":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Zillow JSON. zillow_data contains listings with zpid, displayed price, address, beds, baths and detailUrl, plus statusText, latLong and zestimate when available."},"x-input-example":{"url":"https://www.zillow.com/homes/Austin,-TX_rb/"},"x-output-example":{"zillow_data":[{"zpid":"123456789","price":"$650,000","address":"123 Oak Lane, Austin, TX 78704","beds":3,"baths":2,"statusText":"House for sale","zestimate":648000,"latLong":{"latitude":30.245,"longitude":-97.765},"detailUrl":"https://www.zillow.com/homedetails/123456789_zpid/"}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"zillow_data":{"type":"array","items":{"type":"object","properties":{"zpid":{"type":"string"},"price":{"type":"string"},"address":{"type":"string"},"beds":{"type":"number"},"baths":{"type":"number"},"statusText":{"type":"string"},"zestimate":{"type":"number"},"latLong":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"additionalProperties":true},"detailUrl":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"Zillow JSON. zillow_data contains listings with zpid, displayed price, address, beds, baths and detailUrl, plus statusText, latLong and zestimate when available."},"example":{"zillow_data":[{"zpid":"123456789","price":"$650,000","address":"123 Oak Lane, Austin, TX 78704","beds":3,"baths":2,"statusText":"House for sale","zestimate":648000,"latLong":{"latitude":30.245,"longitude":-97.765},"detailUrl":"https://www.zillow.com/homedetails/123456789_zpid/"}]}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"US property search by a complete Zillow search URL, such as the city _rb URL in the example.","examples":[{"url":"https://www.zillow.com/homes/Austin,-TX_rb/"}],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","description":"Required full HTTP(S) Zillow URL, e.g. https://www.zillow.com/homes/Austin,-TX_rb/. Short city paths such as /austin-tx/ are normalized. Aliases address, location, city, q, query, search become /homes/<encoded value>_rb/ URLs; digits-only zpid becomes /homedetails/<zpid>_zpid/. Canonical url takes precedence. No default; answers without listings are not charged. No option surcharge; 5 credits per successful request.","examples":["https://www.zillow.com/homes/Austin,-TX_rb/"]}},"required":["url"]},"example":{"url":"https://www.zillow.com/homes/Austin,-TX_rb/"}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}]}},"/x402/v1/ebay":{"get":{"operationId":"x402GetEbay","summary":"FastAF eBay Listings & Item Data","description":"eBay product search and item data API for AI agents. eBay search or item URLs return JSON listings or product details with titles, prices, condition, shipping and links when available. Supports marketplace research and price comparison. Provided by FastAF eBay Listings & Item Data. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send query parameters, not a JSON body. The PAYMENT-REQUIRED header quotes the fixed price of this endpoint; options that cost more than it (SERP advance_search, scrape with rendering plus premium proxies or AI extraction) return 400 options_need_api_key before payment and need an API key. Sign it with an x402 v2 client and retry the same URL with PAYMENT-SIGNATURE. Invalid parameters or blocked targets return 402 when unsigned, or 400 before payment verification/settlement when signed. Only successful calls are settled.","tags":["ecommerce","ebay","prices","marketplace"],"x-category":"ecommerce","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/ebay","description":"eBay product search and item data API for AI agents. eBay search or item URLs return JSON listings or product details with titles, prices, condition, shipping and links when available. Supports marketplace research and price comparison. Provided by FastAF eBay Listings & Item Data. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/docs/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"resource":"search","url":"https://www.ebay.com/sch/i.html?_nkw=mechanical+keyboard"},"method":"GET"},"output":{"type":"json","example":{"search_results":[{"position":1,"itemId":"123456789012","title":"Mechanical keyboard with brown switches","condition":"Pre-owned","price":"$45.00","extracted_price":45,"shipping":"Free shipping","link":"https://www.ebay.com/itm/123456789012"}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/docs/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET"]},"queryParams":{"type":"object","description":"eBay keyword search using resource=search and a search URL. Item URLs use resource=product.","examples":[{"resource":"search","url":"https://www.ebay.com/sch/i.html?_nkw=mechanical+keyboard"}],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","description":"Required full HTTP(S) eBay search URL (/sch/...) or item URL (/itm/...) on an eBay country domain. Search/filter/pagination options go in this URL. No default. No option surcharge; 5 credits per successful request.","examples":["https://www.ebay.com/sch/i.html?_nkw=mechanical+keyboard"]},"resource":{"type":"string","enum":["search","product"],"description":"eBay operation: search or product. FastAF defaults to product for /itm/ URLs and search otherwise; both have the same price. No option surcharge; 5 credits per successful request.","examples":["search"]},"html":{"type":"boolean","description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 5 credits per successful request."}},"required":["url"]}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"search_results":{"type":"array","items":{"type":"object","properties":{"position":{"type":"number"},"itemId":{"type":"string"},"title":{"type":"string"},"condition":{"type":"string"},"price":{"type":"string"},"extracted_price":{"type":"number"},"shipping":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"eBay search JSON. search_results contains listing title, itemId, condition, price, extracted_price, shipping and link when available. Item lookups return product_results instead."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF eBay Listings & Item Data","description":"eBay product search and item data API for AI agents. eBay search or item URLs return JSON listings or product details with titles, prices, condition, shipping and links when available. Supports marketplace research and price comparison."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/docs/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/ebay"}}},"x-output-schema":{"anyOf":[{"type":"object","properties":{"search_results":{"type":"array","items":{"type":"object","properties":{"position":{"type":"number"},"itemId":{"type":"string"},"title":{"type":"string"},"condition":{"type":"string"},"price":{"type":"string"},"extracted_price":{"type":"number"},"shipping":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"eBay search JSON. search_results contains listing title, itemId, condition, price, extracted_price, shipping and link when available. Item lookups return product_results instead."},{"type":"string"}]},"x-input-example":{"resource":"search","url":"https://www.ebay.com/sch/i.html?_nkw=mechanical+keyboard"},"x-output-example":{"search_results":[{"position":1,"itemId":"123456789012","title":"Mechanical keyboard with brown switches","condition":"Pre-owned","price":"$45.00","extracted_price":45,"shipping":"Free shipping","link":"https://www.ebay.com/itm/123456789012"}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"parameters":[{"name":"url","in":"query","required":true,"description":"Required full HTTP(S) eBay search URL (/sch/...) or item URL (/itm/...) on an eBay country domain. Search/filter/pagination options go in this URL. No default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","format":"uri","pattern":"^https?://","example":"https://www.ebay.com/sch/i.html?_nkw=mechanical+keyboard"},"example":"https://www.ebay.com/sch/i.html?_nkw=mechanical+keyboard"},{"name":"resource","in":"query","required":false,"description":"eBay operation: search or product. FastAF defaults to product for /itm/ URLs and search otherwise; both have the same price. No option surcharge; 5 credits per successful request.","schema":{"type":"string","enum":["search","product"],"example":"search"},"example":"search"},{"name":"html","in":"query","required":false,"description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 5 credits per successful request.","schema":{"type":"boolean"}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}],"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"search_results":{"type":"array","items":{"type":"object","properties":{"position":{"type":"number"},"itemId":{"type":"string"},"title":{"type":"string"},"condition":{"type":"string"},"price":{"type":"string"},"extracted_price":{"type":"number"},"shipping":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"eBay search JSON. search_results contains listing title, itemId, condition, price, extracted_price, shipping and link when available. Item lookups return product_results instead."},"example":{"search_results":[{"position":1,"itemId":"123456789012","title":"Mechanical keyboard with brown switches","condition":"Pre-owned","price":"$45.00","extracted_price":45,"shipping":"Free shipping","link":"https://www.ebay.com/itm/123456789012"}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}}},"post":{"operationId":"x402PostEbay","summary":"FastAF eBay Listings & Item Data","description":"eBay product search and item data API for AI agents. eBay search or item URLs return JSON listings or product details with titles, prices, condition, shipping and links when available. Supports marketplace research and price comparison. Provided by FastAF eBay Listings & Item Data. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send a JSON body. An empty unpaid probe returns 402; a paid retry requires valid input. Only successful calls settle.","tags":["ecommerce","ebay","prices","marketplace"],"x-category":"ecommerce","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/ebay","description":"eBay product search and item data API for AI agents. eBay search or item URLs return JSON listings or product details with titles, prices, condition, shipping and links when available. Supports marketplace research and price comparison. Provided by FastAF eBay Listings & Item Data. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/docs/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"resource":"search","url":"https://www.ebay.com/sch/i.html?_nkw=mechanical+keyboard"},"method":"POST"},"output":{"type":"json","example":{"search_results":[{"position":1,"itemId":"123456789012","title":"Mechanical keyboard with brown switches","condition":"Pre-owned","price":"$45.00","extracted_price":45,"shipping":"Free shipping","link":"https://www.ebay.com/itm/123456789012"}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/docs/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","description":"eBay keyword search using resource=search and a search URL. Item URLs use resource=product.","examples":[{"resource":"search","url":"https://www.ebay.com/sch/i.html?_nkw=mechanical+keyboard"}],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","description":"Required full HTTP(S) eBay search URL (/sch/...) or item URL (/itm/...) on an eBay country domain. Search/filter/pagination options go in this URL. No default. No option surcharge; 5 credits per successful request.","examples":["https://www.ebay.com/sch/i.html?_nkw=mechanical+keyboard"]},"resource":{"type":"string","enum":["search","product"],"description":"eBay operation: search or product. FastAF defaults to product for /itm/ URLs and search otherwise; both have the same price. No option surcharge; 5 credits per successful request.","examples":["search"]},"html":{"type":"boolean","description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 5 credits per successful request."}},"required":["url"]}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"search_results":{"type":"array","items":{"type":"object","properties":{"position":{"type":"number"},"itemId":{"type":"string"},"title":{"type":"string"},"condition":{"type":"string"},"price":{"type":"string"},"extracted_price":{"type":"number"},"shipping":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"eBay search JSON. search_results contains listing title, itemId, condition, price, extracted_price, shipping and link when available. Item lookups return product_results instead."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF eBay Listings & Item Data","description":"eBay product search and item data API for AI agents. eBay search or item URLs return JSON listings or product details with titles, prices, condition, shipping and links when available. Supports marketplace research and price comparison."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/docs/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/ebay"}}},"x-output-schema":{"anyOf":[{"type":"object","properties":{"search_results":{"type":"array","items":{"type":"object","properties":{"position":{"type":"number"},"itemId":{"type":"string"},"title":{"type":"string"},"condition":{"type":"string"},"price":{"type":"string"},"extracted_price":{"type":"number"},"shipping":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"eBay search JSON. search_results contains listing title, itemId, condition, price, extracted_price, shipping and link when available. Item lookups return product_results instead."},{"type":"string"}]},"x-input-example":{"resource":"search","url":"https://www.ebay.com/sch/i.html?_nkw=mechanical+keyboard"},"x-output-example":{"search_results":[{"position":1,"itemId":"123456789012","title":"Mechanical keyboard with brown switches","condition":"Pre-owned","price":"$45.00","extracted_price":45,"shipping":"Free shipping","link":"https://www.ebay.com/itm/123456789012"}]},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"search_results":{"type":"array","items":{"type":"object","properties":{"position":{"type":"number"},"itemId":{"type":"string"},"title":{"type":"string"},"condition":{"type":"string"},"price":{"type":"string"},"extracted_price":{"type":"number"},"shipping":{"type":"string"},"link":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true,"description":"eBay search JSON. search_results contains listing title, itemId, condition, price, extracted_price, shipping and link when available. Item lookups return product_results instead."},"example":{"search_results":[{"position":1,"itemId":"123456789012","title":"Mechanical keyboard with brown switches","condition":"Pre-owned","price":"$45.00","extracted_price":45,"shipping":"Free shipping","link":"https://www.ebay.com/itm/123456789012"}]}},"text/html":{"schema":{"type":"string"}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"eBay keyword search using resource=search and a search URL. Item URLs use resource=product.","examples":[{"resource":"search","url":"https://www.ebay.com/sch/i.html?_nkw=mechanical+keyboard"}],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","description":"Required full HTTP(S) eBay search URL (/sch/...) or item URL (/itm/...) on an eBay country domain. Search/filter/pagination options go in this URL. No default. No option surcharge; 5 credits per successful request.","examples":["https://www.ebay.com/sch/i.html?_nkw=mechanical+keyboard"]},"resource":{"type":"string","enum":["search","product"],"description":"eBay operation: search or product. FastAF defaults to product for /itm/ URLs and search otherwise; both have the same price. No option surcharge; 5 credits per successful request.","examples":["search"]},"html":{"type":"boolean","description":"Return raw source HTML instead of parsed JSON when true; true/false, default false. No option surcharge; 5 credits per successful request."}},"required":["url"]},"example":{"resource":"search","url":"https://www.ebay.com/sch/i.html?_nkw=mechanical+keyboard"}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}]}},"/x402/v1/x":{"get":{"operationId":"x402GetX","summary":"FastAF X Public Profiles","description":"X (Twitter) public profile API for AI agents: look up a username for audience research and profile enrichment. Returns JSON with name, handle, biography, follower, following and post counts when available; public profile data, not tweet search. Provided by FastAF X Public Profiles. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send query parameters, not a JSON body. The PAYMENT-REQUIRED header quotes the fixed price of this endpoint; options that cost more than it (SERP advance_search, scrape with rendering plus premium proxies or AI extraction) return 400 options_need_api_key before payment and need an API key. Sign it with an x402 v2 client and retry the same URL with PAYMENT-SIGNATURE. Invalid parameters or blocked targets return 402 when unsigned, or 400 before payment verification/settlement when signed. Only successful calls are settled.","tags":["social","x","twitter","profile"],"x-category":"social","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/x","description":"X (Twitter) public profile API for AI agents: look up a username for audience research and profile enrichment. Returns JSON with name, handle, biography, follower, following and post counts when available; public profile data, not tweet search. Provided by FastAF X Public Profiles. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/x-scraper-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"profileId":"nasa"},"method":"GET"},"output":{"type":"json","example":{"name":"NASA","handle":"NASA","description":"Exploring space and sharing discoveries about our universe.","followers_count":85000000,"following_count":170,"statuses_count":75000}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/x-scraper-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET"]},"queryParams":{"type":"object","description":"Public X (Twitter) profile lookup by profileId, without an @ prefix.","examples":[{"profileId":"nasa"}],"additionalProperties":false,"properties":{"profileId":{"type":"string","maxLength":8192,"description":"Required public X/Twitter username, e.g. nasa, without @ or a profile URL. No default; retrieves profile data, not an arbitrary post. No option surcharge; 5 credits per successful request.","examples":["nasa"]}},"required":["profileId"]}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"name":{"type":"string"},"handle":{"type":"string"},"description":{"type":"string"},"followers_count":{"type":"number"},"following_count":{"type":"number"},"statuses_count":{"type":"number"}},"additionalProperties":true,"description":"Public X profile JSON with name, handle, description, followers_count, following_count and statuses_count when available."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF X Public Profiles","description":"X (Twitter) public profile API for AI agents: look up a username for audience research and profile enrichment. Returns JSON with name, handle, biography, follower, following and post counts when available; public profile data, not tweet search."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/x-scraper-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/x"}}},"x-output-schema":{"type":"object","properties":{"name":{"type":"string"},"handle":{"type":"string"},"description":{"type":"string"},"followers_count":{"type":"number"},"following_count":{"type":"number"},"statuses_count":{"type":"number"}},"additionalProperties":true,"description":"Public X profile JSON with name, handle, description, followers_count, following_count and statuses_count when available."},"x-input-example":{"profileId":"nasa"},"x-output-example":{"name":"NASA","handle":"NASA","description":"Exploring space and sharing discoveries about our universe.","followers_count":85000000,"following_count":170,"statuses_count":75000},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"parameters":[{"name":"profileId","in":"query","required":true,"description":"Required public X/Twitter username, e.g. nasa, without @ or a profile URL. No default; retrieves profile data, not an arbitrary post. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192,"example":"nasa"},"example":"nasa"},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}],"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"handle":{"type":"string"},"description":{"type":"string"},"followers_count":{"type":"number"},"following_count":{"type":"number"},"statuses_count":{"type":"number"}},"additionalProperties":true,"description":"Public X profile JSON with name, handle, description, followers_count, following_count and statuses_count when available."},"example":{"name":"NASA","handle":"NASA","description":"Exploring space and sharing discoveries about our universe.","followers_count":85000000,"following_count":170,"statuses_count":75000}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}}},"post":{"operationId":"x402PostX","summary":"FastAF X Public Profiles","description":"X (Twitter) public profile API for AI agents: look up a username for audience research and profile enrichment. Returns JSON with name, handle, biography, follower, following and post counts when available; public profile data, not tweet search. Provided by FastAF X Public Profiles. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send a JSON body. An empty unpaid probe returns 402; a paid retry requires valid input. Only successful calls settle.","tags":["social","x","twitter","profile"],"x-category":"social","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/x","description":"X (Twitter) public profile API for AI agents: look up a username for audience research and profile enrichment. Returns JSON with name, handle, biography, follower, following and post counts when available; public profile data, not tweet search. Provided by FastAF X Public Profiles. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/x-scraper-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"profileId":"nasa"},"method":"POST"},"output":{"type":"json","example":{"name":"NASA","handle":"NASA","description":"Exploring space and sharing discoveries about our universe.","followers_count":85000000,"following_count":170,"statuses_count":75000}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/x-scraper-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","description":"Public X (Twitter) profile lookup by profileId, without an @ prefix.","examples":[{"profileId":"nasa"}],"additionalProperties":false,"properties":{"profileId":{"type":"string","maxLength":8192,"description":"Required public X/Twitter username, e.g. nasa, without @ or a profile URL. No default; retrieves profile data, not an arbitrary post. No option surcharge; 5 credits per successful request.","examples":["nasa"]}},"required":["profileId"]}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"name":{"type":"string"},"handle":{"type":"string"},"description":{"type":"string"},"followers_count":{"type":"number"},"following_count":{"type":"number"},"statuses_count":{"type":"number"}},"additionalProperties":true,"description":"Public X profile JSON with name, handle, description, followers_count, following_count and statuses_count when available."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF X Public Profiles","description":"X (Twitter) public profile API for AI agents: look up a username for audience research and profile enrichment. Returns JSON with name, handle, biography, follower, following and post counts when available; public profile data, not tweet search."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/x-scraper-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/x"}}},"x-output-schema":{"type":"object","properties":{"name":{"type":"string"},"handle":{"type":"string"},"description":{"type":"string"},"followers_count":{"type":"number"},"following_count":{"type":"number"},"statuses_count":{"type":"number"}},"additionalProperties":true,"description":"Public X profile JSON with name, handle, description, followers_count, following_count and statuses_count when available."},"x-input-example":{"profileId":"nasa"},"x-output-example":{"name":"NASA","handle":"NASA","description":"Exploring space and sharing discoveries about our universe.","followers_count":85000000,"following_count":170,"statuses_count":75000},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"handle":{"type":"string"},"description":{"type":"string"},"followers_count":{"type":"number"},"following_count":{"type":"number"},"statuses_count":{"type":"number"}},"additionalProperties":true,"description":"Public X profile JSON with name, handle, description, followers_count, following_count and statuses_count when available."},"example":{"name":"NASA","handle":"NASA","description":"Exploring space and sharing discoveries about our universe.","followers_count":85000000,"following_count":170,"statuses_count":75000}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Public X (Twitter) profile lookup by profileId, without an @ prefix.","examples":[{"profileId":"nasa"}],"additionalProperties":false,"properties":{"profileId":{"type":"string","maxLength":8192,"description":"Required public X/Twitter username, e.g. nasa, without @ or a profile URL. No default; retrieves profile data, not an arbitrary post. No option surcharge; 5 credits per successful request.","examples":["nasa"]}},"required":["profileId"]},"example":{"profileId":"nasa"}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}]}},"/x402/v1/screenshot":{"get":{"operationId":"x402GetScreenshot","summary":"FastAF Website Screenshots","description":"Web page screenshot API for AI agents: capture a website URL as PNG, JPEG or WebP image bytes for visual inspection and page archiving. Supports full-page capture, viewport dimensions and load readiness; the discovery example is a base64-encoded PNG, not a JSON response. Provided by FastAF Website Screenshots. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send query parameters, not a JSON body. The PAYMENT-REQUIRED header quotes the fixed price of this endpoint; options that cost more than it (SERP advance_search, scrape with rendering plus premium proxies or AI extraction) return 400 options_need_api_key before payment and need an API key. Sign it with an x402 v2 client and retry the same URL with PAYMENT-SIGNATURE. Invalid parameters or blocked targets return 402 when unsigned, or 400 before payment verification/settlement when signed. Only successful calls are settled.","tags":["screenshots","screenshot","web","image"],"x-category":"screenshots","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/screenshot","description":"Web page screenshot API for AI agents: capture a website URL as PNG, JPEG or WebP image bytes for visual inspection and page archiving. Supports full-page capture, viewport dimensions and load readiness; the discovery example is a base64-encoded PNG, not a JSON response. Provided by FastAF Website Screenshots. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/screenshot-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"image/png"},"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"url":"https://example.com/","format":"png","wait_until":"load"},"method":"GET"},"output":{"type":"binary","example":"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVR4nGNgAAIAAAUAAXpeqz8AAAAASUVORK5CYII=","format":"image/png"},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/screenshot-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET"]},"queryParams":{"type":"object","description":"Website screenshot by URL with format=png and wait_until=load. Viewport and fullPage options are optional.","examples":[{"url":"https://example.com/","format":"png","wait_until":"load"}],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","description":"Required public HTTP(S) page URL to capture in a browser. Private/network-internal targets and login paths are refused. No default. No option surcharge; 5 credits per successful request.","examples":["https://example.com/"]},"fullPage":{"type":"boolean","description":"Capture the entire scrollable page when true, or only the viewport when false; boolean, default viewport-only capture. No option surcharge; 5 credits per successful request."},"width":{"type":"string","maxLength":8192,"description":"Browser viewport width in CSS pixels, supplied as a positive integer string, e.g. 1280. Omitted: upstream viewport default; FastAF sets no fixed width. No option surcharge; 5 credits per successful request."},"height":{"type":"string","maxLength":8192,"description":"Browser viewport height in CSS pixels, supplied as a positive integer string, e.g. 720. Omitted: upstream viewport default; fullPage may produce a taller image. No option surcharge; 5 credits per successful request."},"wait_until":{"type":"string","enum":["load","domcontentloaded","networkidle"],"default":"domcontentloaded","description":"Capture readiness: domcontentloaded (default) after DOM parsing, load after the load event, or networkidle after network activity is idle. No option surcharge; 5 credits per successful request.","examples":["load"]},"format":{"type":"string","enum":["png","jpg","webp"],"default":"png","description":"Image encoding: png (default), jpg or webp. Response contains image bytes, not JSON or base64 text. No option surcharge; 5 credits per successful request.","examples":["png"]},"quality":{"type":"integer","minimum":0,"maximum":100,"default":80,"description":"Image quality, integer 0-100; default 80. Applies to lossy jpg/webp encoding; PNG is lossless. No option surcharge; 5 credits per successful request."}},"required":["url"]}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"string","format":"binary","contentMediaType":"image/png","description":"Tiny illustrative PNG encoded as base64 for JSON discovery only; the successful response contains image/png bytes, not JSON or base64 text. jpg and webp options return their respective image bytes."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF Website Screenshots","description":"Web page screenshot API for AI agents: capture a website URL as PNG, JPEG or WebP image bytes for visual inspection and page archiving. Supports full-page capture, viewport dimensions and load readiness; the discovery example is a base64-encoded PNG, not a JSON response."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/screenshot-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/screenshot"}}},"x-output-schema":{"type":"string","format":"binary"},"x-input-example":{"url":"https://example.com/","format":"png","wait_until":"load"},"x-output-example":"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVR4nGNgAAIAAAUAAXpeqz8AAAAASUVORK5CYII=","security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"parameters":[{"name":"url","in":"query","required":true,"description":"Required public HTTP(S) page URL to capture in a browser. Private/network-internal targets and login paths are refused. No default. No option surcharge; 5 credits per successful request.","schema":{"type":"string","format":"uri","pattern":"^https?://","example":"https://example.com/"},"example":"https://example.com/"},{"name":"fullPage","in":"query","required":false,"description":"Capture the entire scrollable page when true, or only the viewport when false; boolean, default viewport-only capture. No option surcharge; 5 credits per successful request.","schema":{"type":"boolean"}},{"name":"width","in":"query","required":false,"description":"Browser viewport width in CSS pixels, supplied as a positive integer string, e.g. 1280. Omitted: upstream viewport default; FastAF sets no fixed width. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"height","in":"query","required":false,"description":"Browser viewport height in CSS pixels, supplied as a positive integer string, e.g. 720. Omitted: upstream viewport default; fullPage may produce a taller image. No option surcharge; 5 credits per successful request.","schema":{"type":"string","maxLength":8192}},{"name":"wait_until","in":"query","required":false,"description":"Capture readiness: domcontentloaded (default) after DOM parsing, load after the load event, or networkidle after network activity is idle. No option surcharge; 5 credits per successful request.","schema":{"type":"string","enum":["load","domcontentloaded","networkidle"],"default":"domcontentloaded","example":"load"},"example":"load"},{"name":"format","in":"query","required":false,"description":"Image encoding: png (default), jpg or webp. Response contains image bytes, not JSON or base64 text. No option surcharge; 5 credits per successful request.","schema":{"type":"string","enum":["png","jpg","webp"],"default":"png","example":"png"},"example":"png"},{"name":"quality","in":"query","required":false,"description":"Image quality, integer 0-100; default 80. Applies to lossy jpg/webp encoding; PNG is lossless. No option surcharge; 5 credits per successful request.","schema":{"type":"integer","minimum":0,"maximum":100,"default":80}},{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}],"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"image/png":{"schema":{"type":"string","format":"binary"}},"image/jpeg":{"schema":{"type":"string","format":"binary"}},"image/webp":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}}},"post":{"operationId":"x402PostScreenshot","summary":"FastAF Website Screenshots","description":"Web page screenshot API for AI agents: capture a website URL as PNG, JPEG or WebP image bytes for visual inspection and page archiving. Supports full-page capture, viewport dimensions and load readiness; the discovery example is a base64-encoded PNG, not a JSON response. Provided by FastAF Website Screenshots. Price: $0.005000 USDC fixed per successful call. Docs: https://fastaf.co Send a JSON body. An empty unpaid probe returns 402; a paid retry requires valid input. Only successful calls settle.","tags":["screenshots","screenshot","web","image"],"x-category":"screenshots","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/screenshot","description":"Web page screenshot API for AI agents: capture a website URL as PNG, JPEG or WebP image bytes for visual inspection and page archiving. Supports full-page capture, viewport dimensions and load readiness; the discovery example is a base64-encoded PNG, not a JSON response. Provided by FastAF Website Screenshots. Price: $0.005000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/screenshot-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"image/png"},"extensions":{"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"url":"https://example.com/","format":"png","wait_until":"load"},"method":"POST"},"output":{"type":"binary","example":"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVR4nGNgAAIAAAUAAXpeqz8AAAAASUVORK5CYII=","format":"image/png"},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/screenshot-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","description":"Website screenshot by URL with format=png and wait_until=load. Viewport and fullPage options are optional.","examples":[{"url":"https://example.com/","format":"png","wait_until":"load"}],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","description":"Required public HTTP(S) page URL to capture in a browser. Private/network-internal targets and login paths are refused. No default. No option surcharge; 5 credits per successful request.","examples":["https://example.com/"]},"fullPage":{"type":"boolean","description":"Capture the entire scrollable page when true, or only the viewport when false; boolean, default viewport-only capture. No option surcharge; 5 credits per successful request."},"width":{"type":"string","maxLength":8192,"description":"Browser viewport width in CSS pixels, supplied as a positive integer string, e.g. 1280. Omitted: upstream viewport default; FastAF sets no fixed width. No option surcharge; 5 credits per successful request."},"height":{"type":"string","maxLength":8192,"description":"Browser viewport height in CSS pixels, supplied as a positive integer string, e.g. 720. Omitted: upstream viewport default; fullPage may produce a taller image. No option surcharge; 5 credits per successful request."},"wait_until":{"type":"string","enum":["load","domcontentloaded","networkidle"],"default":"domcontentloaded","description":"Capture readiness: domcontentloaded (default) after DOM parsing, load after the load event, or networkidle after network activity is idle. No option surcharge; 5 credits per successful request.","examples":["load"]},"format":{"type":"string","enum":["png","jpg","webp"],"default":"png","description":"Image encoding: png (default), jpg or webp. Response contains image bytes, not JSON or base64 text. No option surcharge; 5 credits per successful request.","examples":["png"]},"quality":{"type":"integer","minimum":0,"maximum":100,"default":80,"description":"Image quality, integer 0-100; default 80. Applies to lossy jpg/webp encoding; PNG is lossless. No option surcharge; 5 credits per successful request."}},"required":["url"]}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"string","format":"binary","contentMediaType":"image/png","description":"Tiny illustrative PNG encoded as base64 for JSON discovery only; the successful response contains image/png bytes, not JSON or base64 text. jpg and webp options return their respective image bytes."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF Website Screenshots","description":"Web page screenshot API for AI agents: capture a website URL as PNG, JPEG or WebP image bytes for visual inspection and page archiving. Supports full-page capture, viewport dimensions and load readiness; the discovery example is a base64-encoded PNG, not a JSON response."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/screenshot-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/screenshot"}}},"x-output-schema":{"type":"string","format":"binary"},"x-input-example":{"url":"https://example.com/","format":"png","wait_until":"load"},"x-output-example":"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVR4nGNgAAIAAAUAAXpeqz8AAAAASUVORK5CYII=","security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005000"}},"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"image/png":{"schema":{"type":"string","format":"binary"}},"image/jpeg":{"schema":{"type":"string","format":"binary"}},"image/webp":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Website screenshot by URL with format=png and wait_until=load. Viewport and fullPage options are optional.","examples":[{"url":"https://example.com/","format":"png","wait_until":"load"}],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","description":"Required public HTTP(S) page URL to capture in a browser. Private/network-internal targets and login paths are refused. No default. No option surcharge; 5 credits per successful request.","examples":["https://example.com/"]},"fullPage":{"type":"boolean","description":"Capture the entire scrollable page when true, or only the viewport when false; boolean, default viewport-only capture. No option surcharge; 5 credits per successful request."},"width":{"type":"string","maxLength":8192,"description":"Browser viewport width in CSS pixels, supplied as a positive integer string, e.g. 1280. Omitted: upstream viewport default; FastAF sets no fixed width. No option surcharge; 5 credits per successful request."},"height":{"type":"string","maxLength":8192,"description":"Browser viewport height in CSS pixels, supplied as a positive integer string, e.g. 720. Omitted: upstream viewport default; fullPage may produce a taller image. No option surcharge; 5 credits per successful request."},"wait_until":{"type":"string","enum":["load","domcontentloaded","networkidle"],"default":"domcontentloaded","description":"Capture readiness: domcontentloaded (default) after DOM parsing, load after the load event, or networkidle after network activity is idle. No option surcharge; 5 credits per successful request.","examples":["load"]},"format":{"type":"string","enum":["png","jpg","webp"],"default":"png","description":"Image encoding: png (default), jpg or webp. Response contains image bytes, not JSON or base64 text. No option surcharge; 5 credits per successful request.","examples":["png"]},"quality":{"type":"integer","minimum":0,"maximum":100,"default":80,"description":"Image quality, integer 0-100; default 80. Applies to lossy jpg/webp encoding; PNG is lossless. No option surcharge; 5 credits per successful request."}},"required":["url"]},"example":{"url":"https://example.com/","format":"png","wait_until":"load"}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}]}},"/x402/v1/extract":{"post":{"operationId":"x402PostExtract","summary":"Structured data extraction (JSON Schema)","x-tool-slug":"extract_structured_data","description":"Extract structured JSON from a public web page for AI agents: URL and JSON Schema in, JSON valid against it out. For specific fields as data, not page text. Optional schema fields may be missing or null; only fields listed in required are guaranteed to be present in a successful response. Optional nulls are omitted before validation. Non-matching answers are never charged. Provided by Structured data extraction (JSON Schema). Price: $0.020000 USDC fixed per successful call. Docs: https://fastaf.co POST only, with a JSON body {url, schema, render_js?, premium?}; a GET or an empty POST only returns the 402 quote. One fixed price for plain, rendered and premium pages, settled only when the answer is JSON that validates against schema. An invalid or oversized schema returns 402 when unsigned, or 400 before payment verification/settlement when signed. Reddit and Amazon pages are refused the same way.","tags":["extraction","structured-data","json-schema","web","scrape"],"x-category":"extraction","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/extract","description":"Extract structured JSON from a public web page for AI agents: URL and JSON Schema in, JSON valid against it out. For specific fields as data, not page text. Optional schema fields may be missing or null; only fields listed in required are guaranteed to be present in a successful response. Optional nulls are omitted before validation. Non-matching answers are never charged. Provided by Structured data extraction (JSON Schema). Price: $0.020000 USDC per successful call. Docs: https://fastaf.co","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/extract-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"url":"https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html","schema":{"type":"object","required":["title","price","in_stock"],"properties":{"title":{"type":"string"},"price":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string"}}},"in_stock":{"type":"boolean"}}}},"method":"POST"},"output":{"type":"json","example":{"title":"A Light in the Attic","price":{"amount":51.77,"currency":"GBP"},"in_stock":true}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/extract-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","description":"POST only, JSON body: a public page url and a JSON Schema (draft 2020-12 subset: at most 8 KB, 5 levels and 50 properties, local $ref only, root type object or array). render_js (alias dynamic) and premium are optional; challenge_mode is not available.","examples":[{"url":"https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html","schema":{"type":"object","required":["title","price","in_stock"],"properties":{"title":{"type":"string"},"price":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string"}}},"in_stock":{"type":"boolean"}}}}],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","maxLength":8192,"description":"Required public HTTP(S) page URL, at most 8192 characters. Same rules as scrape: private targets and login paths are refused, Zillow/eBay point to their endpoints, Booking is rendered; Reddit and Amazon pages are refused. Nothing is charged for a refused URL. No option surcharge; 40 credits per successful request.","examples":["https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html"]},"schema":{"type":"object","additionalProperties":true,"description":"Required JSON Schema object (draft 2020-12 subset) describing the JSON to return. Root type object or array; at most 8 KB without whitespace, 5 levels deep (root included) and 50 properties in total; local $ref (#/$defs/...) only, no recursion. Keywords: type, properties, required, additionalProperties, items, prefixItems, enum, const, anyOf, oneOf, allOf, not, $defs, format, pattern, numeric and length bounds, and annotations. An invalid schema returns 400 before anything is charged. No option surcharge; 40 credits per successful request.","examples":[{"type":"object","required":["title","price","in_stock"],"properties":{"title":{"type":"string"},"price":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string"}}},"in_stock":{"type":"boolean"}}}]},"render_js":{"type":"boolean","description":"Render JavaScript before extracting; true/false, default false (booking.com defaults true). Same price. No option surcharge; 40 credits per successful request."},"dynamic":{"type":"boolean","description":"Alias for render_js; cannot disagree with it. Same price. No option surcharge; 40 credits per successful request."},"premium":{"type":"boolean","description":"Use residential proxies; true/false, default false. Same price. No option surcharge; 40 credits per successful request."}},"required":["url","schema"]}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":["object","array"],"description":"JSON that validates against the request schema, minified. Optional schema fields may be missing or null; only fields listed in required are guaranteed to be present in a successful response. Optional nulls are omitted before validation. Answers that are not JSON, do not match the schema or exceed 64 KB return 422 extraction_failed with validation_errors and are never charged or settled."}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"Structured data extraction (JSON Schema)","description":"Extract structured JSON from a public web page for AI agents: URL and JSON Schema in, JSON valid against it out. For specific fields as data, not page text. Optional schema fields may be missing or null; only fields listed in required are guaranteed to be present in a successful response. Optional nulls are omitted before validation. Non-matching answers are never charged.","x-tool-slug":"extract_structured_data"},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/extract-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/extract"}}},"x-output-schema":{"type":["object","array"],"description":"JSON that validates against the request schema, minified. Optional schema fields may be missing or null; only fields listed in required are guaranteed to be present in a successful response. Optional nulls are omitted before validation. Answers that are not JSON, do not match the schema or exceed 64 KB return 422 extraction_failed with validation_errors and are never charged or settled."},"x-input-example":{"url":"https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html","schema":{"type":"object","required":["title","price","in_stock"],"properties":{"title":{"type":"string"},"price":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string"}}},"in_stock":{"type":"boolean"}}}},"x-output-example":{"title":"A Light in the Attic","price":{"amount":51.77,"currency":"GBP"},"in_stock":true},"security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.020000"}},"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":["object","array"],"description":"JSON that validates against the request schema, minified. Optional schema fields may be missing or null; only fields listed in required are guaranteed to be present in a successful response. Optional nulls are omitted before validation. Answers that are not JSON, do not match the schema or exceed 64 KB return 422 extraction_failed with validation_errors and are never charged or settled."},"example":{"title":"A Light in the Attic","price":{"amount":51.77,"currency":"GBP"},"in_stock":true}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402PaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call. Or spend_cap_exceeded: the call would exceed X-FastAF-Max-Spend. Nothing was charged. Body: {error, spent_usd, cap_usd, requested_usd, requested_credits, session}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"extraction_failed: the page could not be extracted as JSON, the JSON did not match the schema (validation_errors lists why), or it exceeded 64 KB. Never charged; on x402 never settled.","content":{"application/json":{"schema":{"type":"object","required":["error","reason","validation_errors"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"extraction_failed"},"message":{"type":"string"}}},"reason":{"type":"string","enum":["unparsable","schema_mismatch","too_large"]},"validation_errors":{"type":"array","maxItems":20,"description":"Schema validation errors (schema_mismatch only), as JSON pointers into the extracted data.","items":{"type":"object","required":["path","message"],"properties":{"path":{"type":"string","examples":["#/rating"]},"message":{"type":"string"}}}}}}}}},"429":{"description":"IP burst limit reached. Retry after the Retry-After header interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"POST only, JSON body: a public page url and a JSON Schema (draft 2020-12 subset: at most 8 KB, 5 levels and 50 properties, local $ref only, root type object or array). render_js (alias dynamic) and premium are optional; challenge_mode is not available.","examples":[{"url":"https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html","schema":{"type":"object","required":["title","price","in_stock"],"properties":{"title":{"type":"string"},"price":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string"}}},"in_stock":{"type":"boolean"}}}}],"additionalProperties":false,"properties":{"url":{"type":"string","format":"uri","pattern":"^https?://","maxLength":8192,"description":"Required public HTTP(S) page URL, at most 8192 characters. Same rules as scrape: private targets and login paths are refused, Zillow/eBay point to their endpoints, Booking is rendered; Reddit and Amazon pages are refused. Nothing is charged for a refused URL. No option surcharge; 40 credits per successful request.","examples":["https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html"]},"schema":{"type":"object","additionalProperties":true,"description":"Required JSON Schema object (draft 2020-12 subset) describing the JSON to return. Root type object or array; at most 8 KB without whitespace, 5 levels deep (root included) and 50 properties in total; local $ref (#/$defs/...) only, no recursion. Keywords: type, properties, required, additionalProperties, items, prefixItems, enum, const, anyOf, oneOf, allOf, not, $defs, format, pattern, numeric and length bounds, and annotations. An invalid schema returns 400 before anything is charged. No option surcharge; 40 credits per successful request.","examples":[{"type":"object","required":["title","price","in_stock"],"properties":{"title":{"type":"string"},"price":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string"}}},"in_stock":{"type":"boolean"}}}]},"render_js":{"type":"boolean","description":"Render JavaScript before extracting; true/false, default false (booking.com defaults true). Same price. No option surcharge; 40 credits per successful request."},"dynamic":{"type":"boolean","description":"Alias for render_js; cannot disagree with it. Same price. No option surcharge; 40 credits per successful request."},"premium":{"type":"boolean","description":"Use residential proxies; true/false, default false. Same price. No option surcharge; 40 credits per successful request."}},"required":["url","schema"]},"example":{"url":"https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html","schema":{"type":"object","required":["title","price","in_stock"],"properties":{"title":{"type":"string"},"price":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string"}}},"in_stock":{"type":"boolean"}}}}}}},"parameters":[{"name":"X-FastAF-Max-Spend","in":"header","required":false,"description":"Optional spending cap in USD, decimal with up to 6 places (e.g. 0.01). If this route's fixed price is above it, the call is refused with 409 spend_cap_exceeded before any payment challenge. x402 clients sign every payment, so no session total is kept here.","schema":{"type":"string","pattern":"^\\d{1,7}(?:\\.\\d{1,6})?$","examples":["0.50"]}}]}},"/x402/v1/demo/search":{"get":{"operationId":"x402GetDemoSearch","summary":"FastAF Base Sepolia Search Demo","description":"Free testnet demo of FastAF web search API for AI agents: pay with Base Sepolia test USDC (0.001 per call, no real funds). Returns at most 3 organic results. No account or API key. Five verified attempts per IP per UTC day; only successful calls settle. Uses x402 v2 exact on eip155:84532, test USDC 0x036CbD53842c5426634e7929541eC2318f3dCF7e. Verified and settled via https://x402.org/facilitator. Supports query/q, country, language/lang and results (1-100 accepted, capped at 3; default 3). Advanced search, HTML, deep scraping and pagination are not supported. Verified attempts count before search and settlement, including provider/settlement failures. Unpaid probes, invalid payments and replay conflicts do not count. No prepaid credits are used. Send query parameters, not a JSON body. The PAYMENT-REQUIRED header quotes the fixed price of this endpoint; options that cost more than it (SERP advance_search, scrape with rendering plus premium proxies or AI extraction) return 400 options_need_api_key before payment and need an API key. Sign it with an x402 v2 client and retry the same URL with PAYMENT-SIGNATURE. Invalid parameters or blocked targets return 402 when unsigned, or 400 before payment verification/settlement when signed. Only successful calls are settled.","tags":["search","google","serp","web-search"],"x-category":"search","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/demo/search","description":"Free testnet demo of FastAF web search API for AI agents: pay with Base Sepolia test USDC (0.001 per call, no real funds). Returns at most 3 organic results. No account or API key. Five verified attempts per IP per UTC day; only successful calls settle.","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-serp-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","queryParams":{"query":"best espresso machine for home","country":"us","language":"en"},"method":"GET"},"output":{"type":"json","example":{"demo":true,"network":"base-sepolia","organic_results":[{"position":1,"title":"Espresso guide","link":"https://example.com/espresso","snippet":"A guide to espresso."}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-serp-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["GET"]},"queryParams":{"type":"object","description":"Keyword web search with country and language targeting; query is required.","examples":[{"query":"best espresso machine for home","country":"us","language":"en"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required Google search text; supports operators such as site:example.com and intitle:coffee. No default. No additional credits; 5 per request, or 10 with advance_search=true.","examples":["best espresso machine for home"]},"results":{"type":"integer","minimum":1,"maximum":100,"description":"Requested results (1-100); capped at 3 for the demo, default 3."},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No additional credits; 5 per request, or 10 with advance_search=true.","examples":["us"]},"language":{"type":"string","maxLength":8192,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No additional credits; 5 per request, or 10 with advance_search=true.","examples":["en"]}},"required":["query"]}},"required":["type","method"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","required":["demo","network","organic_results"],"additionalProperties":false,"properties":{"demo":{"type":"boolean","const":true},"network":{"type":"string","const":"base-sepolia"},"organic_results":{"type":"array","maxItems":3,"items":{"type":"object","additionalProperties":false,"properties":{"position":{"type":"number"},"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"}}}}}}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF Base Sepolia Search Demo","description":"Free testnet demo of FastAF web search API for AI agents: pay with Base Sepolia test USDC (0.001 per call, no real funds). Returns at most 3 organic results. No account or API key. Five verified attempts per IP per UTC day; only successful calls settle."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-serp-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/demo/search"}}},"x-output-schema":{"type":"object","required":["demo","network","organic_results"],"additionalProperties":false,"properties":{"demo":{"type":"boolean","const":true},"network":{"type":"string","const":"base-sepolia"},"organic_results":{"type":"array","maxItems":3,"items":{"type":"object","additionalProperties":false,"properties":{"position":{"type":"number"},"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"}}}}}},"x-input-example":{"query":"best espresso machine","country":"us"},"x-output-example":{"demo":true,"network":"base-sepolia","organic_results":[{"position":1,"title":"Espresso guide","link":"https://example.com/espresso","snippet":"A guide to espresso."}]},"x-testnet":true,"x-payment-network":"eip155:84532","security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.001000"}},"parameters":[{"name":"query","in":"query","required":true,"description":"Required Google search text; supports operators such as site:example.com and intitle:coffee. No default. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192,"example":"best espresso machine for home"},"example":"best espresso machine for home"},{"name":"results","in":"query","required":false,"description":"Requested results (1-100); capped at 3 for the demo, default 3.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"country","in":"query","required":false,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192,"example":"us"},"example":"us"},{"name":"language","in":"query","required":false,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No additional credits; 5 per request, or 10 with advance_search=true.","schema":{"type":"string","maxLength":8192,"example":"en"},"example":"en"}],"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["demo","network","organic_results"],"additionalProperties":false,"properties":{"demo":{"type":"boolean","const":true},"network":{"type":"string","const":"base-sepolia"},"organic_results":{"type":"array","maxItems":3,"items":{"type":"object","additionalProperties":false,"properties":{"position":{"type":"number"},"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"}}}}}},"example":{"demo":true,"network":"base-sepolia","organic_results":[{"position":1,"title":"Espresso guide","link":"https://example.com/espresso","snippet":"A guide to espresso."}]}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402DemoPaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"demo_rate_limit_exceeded: five verified attempts per CF-Connecting-IP per UTC day, checked before provider work and settlement. Retry-After gives seconds until midnight UTC. The independent IP burst limit can also return 429.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}}},"post":{"operationId":"x402PostDemoSearch","summary":"FastAF Base Sepolia Search Demo","description":"Free testnet demo of FastAF web search API for AI agents: pay with Base Sepolia test USDC (0.001 per call, no real funds). Returns at most 3 organic results. No account or API key. Five verified attempts per IP per UTC day; only successful calls settle. Uses x402 v2 exact on eip155:84532, test USDC 0x036CbD53842c5426634e7929541eC2318f3dCF7e. Verified and settled via https://x402.org/facilitator. Supports query/q, country, language/lang and results (1-100 accepted, capped at 3; default 3). Advanced search, HTML, deep scraping and pagination are not supported. Verified attempts count before search and settlement, including provider/settlement failures. Unpaid probes, invalid payments and replay conflicts do not count. No prepaid credits are used. Send a JSON body. An empty unpaid probe returns 402; a paid retry requires valid input. Only successful calls settle.","tags":["search","google","serp","web-search"],"x-category":"search","x-x402-discovery":{"resource":{"url":"https://api.fastaf.co/x402/v1/demo/search","description":"Free testnet demo of FastAF web search API for AI agents: pay with Base Sepolia test USDC (0.001 per call, no real funds). Returns at most 3 organic results. No account or API key. Five verified attempts per IP per UTC day; only successful calls settle.","serviceName":"FastAF","tags":["data","scraping","web-data","api","agents"],"iconUrl":"https://fastaf.co/icon-512.png","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-serp-api/","openApiUrl":"https://api.fastaf.co/openapi.json","mimeType":"application/json"},"extensions":{"bazaar":{"info":{"input":{"type":"http","bodyType":"json","body":{"query":"best espresso machine for home","country":"us","language":"en"},"method":"POST"},"output":{"type":"json","example":{"demo":true,"network":"base-sepolia","organic_results":[{"position":1,"title":"Espresso guide","link":"https://example.com/espresso","snippet":"A guide to espresso."}]}},"homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-serp-api/","openApiUrl":"https://api.fastaf.co/openapi.json"},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"type":{"type":"string","const":"http"},"method":{"type":"string","enum":["POST"]},"bodyType":{"type":"string","enum":["json","form-data","text"]},"body":{"type":"object","description":"Keyword web search with country and language targeting; query is required.","examples":[{"query":"best espresso machine for home","country":"us","language":"en"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required Google search text; supports operators such as site:example.com and intitle:coffee. No default. No additional credits; 5 per request, or 10 with advance_search=true.","examples":["best espresso machine for home"]},"results":{"type":"integer","minimum":1,"maximum":100,"description":"Requested results (1-100); capped at 3 for the demo, default 3."},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No additional credits; 5 per request, or 10 with advance_search=true.","examples":["us"]},"language":{"type":"string","maxLength":8192,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No additional credits; 5 per request, or 10 with advance_search=true.","examples":["en"]}},"required":["query"]}},"required":["type","method","bodyType","body"],"additionalProperties":false},"output":{"type":"object","properties":{"type":{"type":"string"},"example":{"type":"object","required":["demo","network","organic_results"],"additionalProperties":false,"properties":{"demo":{"type":"boolean","const":true},"network":{"type":"string","const":"base-sepolia"},"organic_results":{"type":"array","maxItems":3,"items":{"type":"object","additionalProperties":false,"properties":{"position":{"type":"number"},"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"}}}}}}},"required":["type"]},"homepage":{"type":"string","format":"uri"},"website":{"type":"string","format":"uri"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri"}},"required":["input"],"title":"FastAF Base Sepolia Search Demo","description":"Free testnet demo of FastAF web search API for AI agents: pay with Base Sepolia test USDC (0.001 per call, no real funds). Returns at most 3 organic results. No account or API key. Five verified attempts per IP per UTC day; only successful calls settle."},"metadata":{"provider":{"name":"FastAF","description":"FastAF: Web data for AI agents, pay per call in USDC via x402, no account: Google search, Maps, Patents, Flights, News, Shopping, Scholar, Jobs, AI Mode, Amazon, eBay, Walmart, Zillow, YouTube transcripts, public LinkedIn/X profiles, scraping and screenshots.","homepage":"https://fastaf.co","website":"https://fastaf.co","docsUrl":"https://fastaf.co/apis/google-serp-api/","openApiUrl":"https://api.fastaf.co/openapi.json"}},"routeTemplate":"/x402/v1/demo/search"}}},"x-output-schema":{"type":"object","required":["demo","network","organic_results"],"additionalProperties":false,"properties":{"demo":{"type":"boolean","const":true},"network":{"type":"string","const":"base-sepolia"},"organic_results":{"type":"array","maxItems":3,"items":{"type":"object","additionalProperties":false,"properties":{"position":{"type":"number"},"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"}}}}}},"x-input-example":{"query":"best espresso machine","country":"us"},"x-output-example":{"demo":true,"network":"base-sepolia","organic_results":[{"position":1,"title":"Espresso guide","link":"https://example.com/espresso","snippet":"A guide to espresso."}]},"x-testnet":true,"x-payment-network":"eip155:84532","security":[],"x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.001000"}},"responses":{"200":{"description":"Successful result; payment settled. Content type depends on the requested format. A JSON object answer ends with request_id and receipt (see the Receipt schema: USD price paid, sha256 of the data, x402_tx); every format carries X-Request-Id and X-FastAF-Receipt.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id of this request (req_ + 32 hex). Sent on every response, errors included; quote it to support.","schema":{"type":"string"}},"X-FastAF-Receipt":{"description":"The receipt as `key=value` pairs separated by \"; \": request_id, endpoint, credits, free_credits, usd, usd_basis, sha256, x402_tx (\"none\" when absent). See the Receipt schema.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["demo","network","organic_results"],"additionalProperties":false,"properties":{"demo":{"type":"boolean","const":true},"network":{"type":"string","const":"base-sepolia"},"organic_results":{"type":"array","maxItems":3,"items":{"type":"object","additionalProperties":false,"properties":{"position":{"type":"number"},"title":{"type":"string"},"link":{"type":"string"},"snippet":{"type":"string"}}}}}},"example":{"demo":true,"network":"base-sepolia","organic_results":[{"position":1,"title":"Espresso guide","link":"https://example.com/espresso","snippet":"A guide to espresso."}]}}}},"400":{"description":"Invalid parameters, blocked target, or options_need_api_key on a signed request; nothing charged. Validation errors name the affected parameter and include example (also example_url) with a complete valid GET request URL and accepted_aliases.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"$ref":"#/components/responses/X402DemoPaymentRequired"},"404":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found); nothing settled. Also x402_not_enabled when pay-per-call is disabled on this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"This signed payment is already in use or has already paid for a call.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result; nothing settled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"demo_rate_limit_exceeded: five verified attempts per CF-Connecting-IP per UTC day, checked before provider work and settlement. Retry-After gives seconds until midnight UTC. The independent IP burst limit can also return 429.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream failed, or returned blocked, empty or incomplete data; nothing settled. A blocked answer (target_blocked: captcha, bot check, empty page, or HTTP 403 on scrape and serp) adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"503":{"description":"Temporarily unavailable; nothing settled. Always with Retry-After. The data source timing out or being down returns {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; capacity or payment configuration problems keep the Error shape.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Keyword web search with country and language targeting; query is required.","examples":[{"query":"best espresso machine for home","country":"us","language":"en"}],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":8192,"description":"Required Google search text; supports operators such as site:example.com and intitle:coffee. No default. No additional credits; 5 per request, or 10 with advance_search=true.","examples":["best espresso machine for home"]},"results":{"type":"integer","minimum":1,"maximum":100,"description":"Requested results (1-100); capped at 3 for the demo, default 3."},"country":{"type":"string","maxLength":8192,"description":"Two-letter search country code, e.g. us, uk or fr; default us. Localizes results, not a scrape proxy selection. No additional credits; 5 per request, or 10 with advance_search=true.","examples":["us"]},"language":{"type":"string","maxLength":8192,"description":"Result/interface language code, e.g. en, es, fr or de; default en. Use lr, where supported, to restrict document languages. No additional credits; 5 per request, or 10 with advance_search=true.","examples":["en"]}},"required":["query"]},"example":{"query":"best espresso machine","country":"us"}}}}}},"/x402/v1/scrape/jobs/{job_id}":{"get":{"operationId":"x402PollScrapeJob","summary":"Poll a private scrape job","description":"pending: 202; done or failed: 200. Failed jobs cost nothing. Results and idempotency retained for one hour; unknown, expired and unauthorized IDs return identical 404. Pending polls are free. A ready result returns 402 until payment settles; then repeated reads with the bearer capability are free.","security":[],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","pattern":"^job_[a-f0-9]{64}$"}},{"name":"X-Scrape-Token","in":"header","required":true,"schema":{"type":"string"},"description":"Private token returned on submission."}],"responses":{"200":{"description":"Job terminal status and result (successful results only).","headers":{"Location":{"schema":{"type":"string","format":"uri"}},"Retry-After":{"schema":{"type":"integer"}},"X-Scrape-Token":{"description":"x402 only: private bearer capability for polling. Never log or share.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["job_id","status","expires_at"],"properties":{"job_id":{"type":"string"},"status":{"type":"string","enum":["pending","done","failed"]},"expires_at":{"type":"string","format":"date-time"},"status_url":{"type":"string","format":"uri"},"result":{"type":"string"},"content_type":{"type":"string"},"error":{"type":"string"},"credits_used":{"type":"integer"}}}}}},"202":{"description":"Scrape accepted, no final charge or x402 settlement yet. Poll Location with the same account key, or X-Scrape-Token on x402.","headers":{"Location":{"schema":{"type":"string","format":"uri"}},"Retry-After":{"schema":{"type":"integer"}},"X-Scrape-Token":{"description":"x402 only: private bearer capability for polling. Never log or share.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["job_id","status","expires_at"],"properties":{"job_id":{"type":"string"},"status":{"type":"string","enum":["pending","done","failed"]},"expires_at":{"type":"string","format":"date-time"},"status_url":{"type":"string","format":"uri"},"result":{"type":"string"},"content_type":{"type":"string"},"error":{"type":"string"},"credits_used":{"type":"integer"}}}}}},"402":{"description":"Ready result requires x402 payment; no settlement on pending/failed."},"404":{"description":"Unknown, expired or unauthorized job."},"409":{"description":"Delivery in progress; retry without creating a new payment."}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API key"},"sessionCookie":{"type":"apiKey","in":"cookie","name":"fastaf_session"}},"schemas":{"ApiKey":{"type":"object","additionalProperties":false,"required":["id","prefix","name","status","created_at","last_used_at"],"properties":{"id":{"type":"string"},"prefix":{"type":"string","pattern":"^faf_live_"},"name":{"type":"string","maxLength":100},"status":{"type":"string","enum":["active","revoked"]},"created_at":{"type":"string"},"last_used_at":{"type":["string","null"]}}},"CreatedApiKey":{"type":"object","additionalProperties":false,"required":["id","prefix","name","status","created_at","last_used_at","key","warning"],"properties":{"id":{"type":"string"},"prefix":{"type":"string","pattern":"^faf_live_"},"name":{"type":"string","maxLength":100},"status":{"type":"string","const":"active"},"created_at":{"type":"string"},"last_used_at":{"type":"null"},"key":{"type":"string","pattern":"^faf_live_[0-9A-Za-z]{32}$"},"warning":{"type":"string"}}},"RequestLogEntry":{"type":"object","additionalProperties":false,"required":["id","endpoint","status","credits","duration_ms","created_at"],"properties":{"id":{"type":"string"},"endpoint":{"type":"string","enum":["serp","maps","amazon","linkedin","youtube","scrape","news","shopping","scholar","jobs","ai","linkedin_jobs","patents","flights","bing","images","reddit","walmart","zillow","ebay","x","screenshot","extract"]},"status":{"type":"integer"},"credits":{"type":"integer","minimum":0},"duration_ms":{"type":"integer","minimum":0},"created_at":{"type":"string","format":"date-time"}}},"UsageDay":{"type":"object","additionalProperties":false,"required":["day","endpoint","requests","credits","failed_requests"],"properties":{"day":{"type":"string","format":"date"},"endpoint":{"type":"string","enum":["serp","maps","amazon","linkedin","youtube","scrape","news","shopping","scholar","jobs","ai","linkedin_jobs","patents","flights","bing","images","reddit","walmart","zillow","ebay","x","screenshot","extract"]},"requests":{"type":"integer","minimum":0},"credits":{"type":"integer","minimum":0},"failed_requests":{"type":"integer","minimum":0}}},"Receipt":{"type":"object","description":"Receipt of a successful data call, also in the X-FastAF-Receipt header. Added with request_id at the end of JSON object answers; other formats carry it in the header only. It describes the call and changes nothing about billing.","required":["request_id","endpoint","credits","free_credits","usd","usd_basis","sha256","x402_tx","x402_network","issued_at"],"properties":{"request_id":{"type":"string","pattern":"^req_[0-9a-f]{32}$","description":"Same value as the X-Request-Id header."},"endpoint":{"type":"string"},"credits":{"type":["integer","null"],"minimum":0,"description":"Credits taken for the call (keyed API); null over x402."},"free_credits":{"type":["integer","null"],"minimum":0,"description":"The part of credits paid with the monthly free credits; null over x402."},"usd":{"type":"string","pattern":"^\\d+\\.\\d{6}$","description":"Cost in USD: the x402 price paid, or the paid credits (credits minus free_credits) at the Starter pack rate ($10 / 20,000 credits), the highest rate per credit."},"usd_basis":{"type":"string","enum":["x402_price","starter_pack_rate"]},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$","description":"sha256 (hex) of the data. JSON object answers: JSON.stringify of the body without request_id and receipt. Any other format: the exact bytes received."},"x402_tx":{"type":["string","null"],"description":"x402 settlement transaction hash; null on the keyed API."},"x402_network":{"type":["string","null"],"description":"CAIP-2 network of the x402 settlement, e.g. eip155:8453."},"issued_at":{"type":"string","format":"date-time"}}},"Error":{"type":"object","required":["error"],"properties":{"blocked":{"type":"boolean","const":true,"description":"Present when the site or data source blocked the call (captcha, bot check, empty page, or HTTP 403/429/503 on scrape and serp). Never charged: credits are refunded and x402 payments are not settled. Also sent as the X-FastAF-Blocked header."},"reason":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."},"example":{"type":"string","format":"uri","description":"A complete valid GET request URL for this endpoint, included with invalid input responses."},"example_url":{"type":"string","format":"uri","description":"A complete valid GET example for this endpoint, included with parameter validation errors."},"examples":{"type":"array","items":{"type":"string","format":"uri"},"description":"Valid URLs for alternative operations, such as YouTube transcript and search."},"accepted_aliases":{"type":"array","items":{"type":"string"},"description":"Accepted parameter aliases; see parameter descriptions for their canonical names and precedence."},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"PaymentRequired":{"allOf":[{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Error code (v2 PaymentRequired.error)."},"error_details":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"type":"integer","const":2,"description":"Same as PAYMENT-REQUIRED: x402 v2."},"resource":{"type":"object","required":["url","description","mimeType"],"description":"The PAYMENT-REQUIRED resource with the full discovery metadata (the compact header keeps url, description (at most 500 characters), mimeType, serviceName, tags and iconUrl).","properties":{"url":{"type":"string","format":"uri"},"description":{"type":"string"},"mimeType":{"type":"string"},"serviceName":{"type":"string","example":"FastAF"},"tags":{"type":"array","maxItems":5,"items":{"type":"string"},"description":"Endpoint category followed by search tags."},"iconUrl":{"type":"string","format":"uri"},"homepage":{"type":"string","format":"uri","example":"https://fastaf.co"},"website":{"type":"string","format":"uri","example":"https://fastaf.co"},"docsUrl":{"type":"string","format":"uri"},"openApiUrl":{"type":"string","format":"uri","example":"https://api.fastaf.co/openapi.json"}}},"extensions":{"type":"object","description":"The full protocol extensions; PAYMENT-REQUIRED carries a compact Bazaar declaration (input and output examples and their schemas, without descriptions). Per-operation x-x402-discovery contains the concrete Bazaar info and JSON Schema.","properties":{"bazaar":{"type":"object","required":["info","schema"],"properties":{"info":{"type":"object","required":["input"],"properties":{"input":{"type":"object"},"output":{"type":"object"}}},"schema":{"type":"object","description":"JSON Schema (2020-12) validating info, including input parameters and output.example."},"routeTemplate":{"type":"string"}}}}},"accepts":{"type":"array","minItems":1,"description":"The x402 v2 requirements, identical to PAYMENT-REQUIRED. Present on payment challenges, not settlement failures.","items":{"type":"object","required":["scheme","network","amount","payTo","asset","maxTimeoutSeconds","extra"],"properties":{"scheme":{"type":"string","const":"exact"},"network":{"type":"string","pattern":"^eip155:[0-9]+$","description":"CAIP-2 network identifier."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"Price in atomic USDC units."},"payTo":{"type":"string"},"asset":{"type":"string"},"maxTimeoutSeconds":{"type":"integer"},"extra":{"type":"object","additionalProperties":true}}}},"price":{"type":"object","required":["usd","asset","network"],"properties":{"usd":{"type":"string","pattern":"^[0-9]+\\.[0-9]{6}$"},"credits":{"type":"integer","minimum":1},"asset":{"type":"string","const":"USDC"},"network":{"type":"string","description":"CAIP-2 network identifier."}}},"how_to_pay":{"type":"string"},"with_a_key":{"type":"string"},"docs":{"type":"string","format":"uri"}}}]}},"responses":{"BadRequest":{"description":"Invalid request or parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"Missing, invalid or revoked API key. Data-route errors include error.help with signup and API-key instructions. Pay-per-call clients must start at /x402/v1/{endpoint}; /v1 never accepts payment headers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"WWW-Authenticate":{"schema":{"type":"string","const":"Bearer"}}}},"PaymentRequired":{"description":"The account has insufficient credits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Forbidden":{"description":"The account is suspended or email verification is required before data calls.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"TargetNotFound":{"description":"target_not_found: the requested resource was not found (Amazon product/offer: Product not found). No credits are consumed. Check the identifier or URL.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ExtractionFailed":{"description":"extraction_failed: the page could not be extracted as JSON, the JSON did not match the schema (validation_errors lists why), or it exceeded 64 KB. Never charged; on x402 never settled.","content":{"application/json":{"schema":{"type":"object","required":["error","reason","validation_errors"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"extraction_failed"},"message":{"type":"string"}}},"reason":{"type":"string","enum":["unparsable","schema_mismatch","too_large"]},"validation_errors":{"type":"array","maxItems":20,"description":"Schema validation errors (schema_mismatch only), as JSON pointers into the extracted data.","items":{"type":"object","required":["path","message"],"properties":{"path":{"type":"string","examples":["#/rating"]},"message":{"type":"string"}}}}}}}}},"TargetUnavailable":{"description":"target_unavailable: the source returned 410 or an empty response, without a definitive not-found result. Nothing charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"TooManyRequests":{"description":"A rate or concurrency limit was reached.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"BadGateway":{"description":"The upstream request failed, or the site answered with a block (target_blocked: captcha, bot check, empty page) or no data (no_data). Never charged. A blocked answer adds blocked: true and reason to the body and the X-FastAF-Blocked header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-FastAF-Blocked":{"description":"The block reason, on blocked calls only.","schema":{"type":"string","enum":["challenge","captcha","empty","too_short","incomplete","not_data","serp_blocked","http_403","http_429","http_503"],"description":"Why the call was flagged as blocked: challenge (bot check page), captcha (reCAPTCHA/hCaptcha widget), empty or too_short (no content), incomplete (results missing), not_data (a web page in place of JSON), serp_blocked (Google's unusual-traffic or captcha page without organic results), http_403 / http_429 / http_503 (the data source refused the call)."}}}},"ServiceUnavailable":{"description":"The service is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"InternalServerError":{"description":"The request failed unexpectedly.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"DataServiceUnavailable":{"description":"Temporarily unavailable; always with Retry-After and never charged (credits are refunded). Upstream outages use {error: {code: 'upstream_timeout' | 'upstream_unavailable', message, stage: 'upstream_fetch', retry_after: 5}}; other 503s keep the Error shape (capacity_unavailable, reservation_expired, service_unavailable).","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","stage","retry_after"],"properties":{"code":{"type":"string","enum":["upstream_timeout","upstream_unavailable"]},"message":{"type":"string"},"stage":{"type":"string","const":"upstream_fetch"},"retry_after":{"type":"integer","const":5,"description":"Same value as the Retry-After header, in seconds."}}},"blocked":{"type":"boolean","const":true,"description":"Present on scrape and serp when the data source answered HTTP 503: reported as a block. Never charged."},"reason":{"type":"string","const":"http_503","description":"Why the call was flagged as blocked; also sent as the X-FastAF-Blocked header."}},"example":{"error":{"code":"upstream_timeout","message":"The data source did not answer in time. Nothing was charged; retry after Retry-After seconds.","stage":"upstream_fetch","retry_after":5}}},{"$ref":"#/components/schemas/Error"}]}}}},"X402DemoPaymentRequired":{"description":"Testnet payment required: x402 v2 exact, eip155:84532 (Base Sepolia), 1000 atomic test USDC (0.001). No real funds or API key. PAYMENT-REQUIRED is authoritative; retry with PAYMENT-SIGNATURE. Settlement failures return 402 with PAYMENT-RESPONSE and no data.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402 v2 testnet challenge.","schema":{"type":"string"}},"PAYMENT-RESPONSE":{"description":"Base64-encoded settlement failure receipt.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/Error"},{"allOf":[{"$ref":"#/components/schemas/PaymentRequired"},{"type":"object","properties":{"x402Version":{"type":"integer","const":2},"demo":{"type":"boolean","const":true},"network":{"type":"string","const":"base-sepolia"},"resource":{"$ref":"#/components/schemas/PaymentRequired/allOf/1/properties/resource"},"accepts":{"$ref":"#/components/schemas/PaymentRequired/allOf/1/properties/accepts"},"extensions":{"type":"object"},"price":{"type":"object","properties":{"usd":{"const":"0.001000"},"credits":{"const":0},"asset":{"const":"USDC"},"network":{"const":"eip155:84532"}}}}}]}]}}}},"X402PaymentRequired":{"description":"Payment required. Decode PAYMENT-REQUIRED (base64 JSON) for the authoritative x402 v2 accepts[].amount in USDC atomic units, network, asset and payTo. The JSON body is the same v2 PaymentRequired (x402Version, resource, accepts, extensions) plus human-readable fields. Sign it with an x402 v2 client and retry with PAYMENT-SIGNATURE. Start at /x402/v1/*, not /v1/*. A failed settlement also returns 402 (settlement_failed) with PAYMENT-RESPONSE instead of data, without a payment challenge.","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402 v2 payment challenge (present on unpaid requests).","schema":{"type":"string"}},"PAYMENT-RESPONSE":{"description":"Base64-encoded settlement failure receipt, when settlement fails.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PaymentRequired"},{"$ref":"#/components/schemas/Error"}]}}}}}}}