{"openapi":"3.0.3","info":{"title":"EveryInfra","version":"2.0.0","description":"Social data & search infrastructure for the AI era. One universal endpoint (`/api/v1/social`) covers 90 platforms / 413 capabilities across three domains — social (Xiaohongshu, Douyin, Weibo, Instagram, TikTok, X, Reddit, YouTube, Threads…), reviews (Google Maps, Yelp, Trustpilot, App Store…), e-commerce (Amazon, AliExpress, Walmart, eBay…) and web search. plus an OpenAI-compatible AI API (`/api/v1/chat/completions`), free for accounts that have topped up. One shared prepaid balance, denominated in USD. Data/search is priced per platform tier — USD 0.56/1K (Benchmark, 106 capabilities) / USD 1.39/1K (Standard, 274 capabilities) / USD 2.78/1K (Deep, 5 capabilities) / USD 5.56/1K (Hard-target, 28 capabilities); One call, one charge, except actions with `rows_per_unit` in the catalog, which are priced per block of rows. Most actions deliver the row count you ask for in a single call (see `max_limit` in the catalog); page-based actions (`page_size` in the catalog) return one page per call, and each further page is one call. Monthly top-up discount based on top-ups credited in the current calendar month (Beijing time), at face value: 10% off from USD 500; 20% off from USD 1,000; 30% off from USD 2,000 — applies from the next call once reached and resets on the 1st; credit codes and bonuses do not count. Authenticate with a Bearer API key — sign up free at https://api.everyinfra.com; trial credits available on request. Prefer MCP? `POST /mcp` exposes 23 currently discoverable tools (everyinfra_list_capabilities, everyinfra_call_api, everyinfra_get_job, everyinfra_chat, everyinfra_list_captcha_types, everyinfra_solve_captcha, everyinfra_search, everyinfra_account, everyinfra_usage, everyinfra_requests, everyinfra_billing, everyinfra_keys, everyinfra_tickets, everyinfra_topup_link, everyinfra_key_create, everyinfra_key_update, everyinfra_key_disable, everyinfra_key_delete, everyinfra_settings_update, everyinfra_webhook_set, everyinfra_webhook_test, everyinfra_ticket_create, everyinfra_ticket_reply) — see https://api.everyinfra.com/llms.txt for details."},"servers":[{"url":"https://api.everyinfra.com","description":"Primary"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Your API key as a Bearer token."}}},"security":[{"bearerAuth":[]}],"tags":[{"name":"Social","description":"Universal social & search endpoint"},{"name":"Search","description":"EverySearch — web retrieval across mechanism-distinct chains"},{"name":"Captcha","description":"EverySolve — captcha solving, charged per successful solve"},{"name":"Availability","description":"Health of every product; no API key needed"},{"name":"Account","description":"Your own account with an API key: balance, discount tier, rate limit, usage, calls, billing, and with write scopes keys, settings and webhooks"},{"name":"AI","description":"OpenAI-compatible AI API, free for accounts that have topped up"}],"paths":{"/api/v1/market":{"get":{"operationId":"infraMarketplace","summary":"Discover EveryInfra products and offerings","description":"Free Infra Marketplace discovery endpoint. The default view lists product families; pass `family` to expand that family into products and offerings. API, MCP, SDK and SOCKS5 are access methods, not product categories.","tags":["Marketplace"],"security":[],"parameters":[{"name":"family","in":"query","required":false,"schema":{"type":"string"},"description":"Expand one family, for example data, proxy or sms."}],"responses":{"200":{"description":"Infrastructure market","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["infra_market"]},"name":{"type":"object","additionalProperties":{"type":"string"}},"contract":{"type":"object","additionalProperties":true},"families":{"type":"array","items":{"type":"object","properties":{"family":{"type":"string"},"title":{"type":"string"},"lifecycle":{"type":"string"},"availability":{"type":"string"},"products":{"type":"array","items":{"type":"object"}}}}},"summary":{"type":"object","additionalProperties":true}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/api/v1/market/{family}/{product}":{"get":{"operationId":"infraMarketProduct","summary":"One product with its offerings","description":"Free. Returns the family summary plus one product and every offering under it, so clients do not have to download the whole family to find a product.","tags":["Marketplace"],"security":[],"parameters":[{"name":"family","in":"path","required":true,"schema":{"type":"string"}},{"name":"product","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Product detail","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["infra_market.product"]},"family":{"type":"object"},"product":{"type":"object"}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"404":{"description":"Unknown family or product","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/api/v1/market/{family}/{product}/{capability}":{"get":{"operationId":"infraMarketOffering","summary":"One offering (SKU) with its price and lifecycle","description":"Free. Locates a single offering by family, product and capability id.","tags":["Marketplace"],"security":[],"parameters":[{"name":"family","in":"path","required":true,"schema":{"type":"string"}},{"name":"product","in":"path","required":true,"schema":{"type":"string"}},{"name":"capability","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Offering detail","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["infra_market.offering"]},"family":{"type":"object"},"product":{"type":"object"},"offering":{"type":"object"}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"404":{"description":"Unknown family, product or offering","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/api/v1/market/quote":{"post":{"operationId":"infraMarketQuote","summary":"Price a quantity of one offering","description":"Estimate the total for `units` of one offering at the caller's current discount tier. Quotes are valid for 15 minutes and carry the rate snapshot they were priced with. Offerings priced by quote return `status: contact_required` instead of a number.","tags":["Marketplace"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["family","product","capability"],"additionalProperties":false,"properties":{"family":{"type":"string","maxLength":32},"product":{"type":"string","maxLength":160},"capability":{"type":"string","maxLength":160},"units":{"type":"integer","minimum":1,"maximum":1000000,"default":1}}}}}},"responses":{"200":{"description":"Quote","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["infra_market.quote"]},"offering_id":{"type":"string"},"status":{"type":"string"},"pricing_model":{"type":"string"}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"404":{"description":"Unknown family, product or offering","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"409":{"description":"Offering is not currently selling","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"422":{"description":"Invalid request body","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/api/v1/market/estimate":{"post":{"operationId":"infraMarketEstimate","summary":"Estimate capacity from a budget, or cost from a quantity","description":"Read-only estimator for one marketplace offering; it never charges, reserves inventory, or creates an order. `budget` mode accepts a custom USD budget and returns the estimated quantity. `quantity` mode accepts `units` and returns the estimated USD total. Custom estimates are anonymous. The signed-in customer console can additionally select its current balance and account-specific pricing; public API keys are not used here. Results expire after 15 minutes and do not guarantee quota, inventory, or future prices.","tags":["Marketplace"],"security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["family","product","capability"],"additionalProperties":false,"properties":{"family":{"type":"string","minLength":1,"maxLength":32},"product":{"type":"string","minLength":1,"maxLength":160},"capability":{"type":"string","minLength":1,"maxLength":160},"mode":{"type":"string","enum":["budget","quantity"],"default":"budget"},"budget_source":{"type":"string","enum":["custom","balance"],"default":"custom"},"budget_usd":{"type":"number","minimum":0,"maximum":1000000,"nullable":true},"units":{"type":"integer","minimum":1,"maximum":1000000,"nullable":true},"batch_size":{"type":"integer","minimum":1,"maximum":1000000,"default":1}}}}}},"responses":{"200":{"description":"Non-binding estimate","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["infra_market.estimate"]},"offering_id":{"type":"string","nullable":true},"mode":{"type":"string","enum":["budget","quantity"]},"status":{"type":"string","enum":["estimated","unavailable","contact_required","dynamic_price","price_unavailable","free","unsupported_meter"]},"units":{"type":"integer","nullable":true,"description":"Units of the offering's estimate basis; rows when the basis unit is `row`"},"rows_per_unit":{"type":"integer","description":"Only for actions billed per block of rows (catalog `rows_per_unit`, e.g. AliExpress search: 50)"},"billed_units":{"type":"integer","description":"Calls charged for `units` rows: ceil(units / rows_per_unit)"},"batch_size":{"type":"integer"},"quantity":{"type":"object","nullable":true},"unit_amount":{"type":"object"},"total":{"type":"object"},"budget":{"type":"object"},"remaining":{"type":"object"},"budget_source":{"type":"string","nullable":true},"pricing_scope":{"type":"string","enum":["list","account","provider_retail","provider_wholesale"]},"binding":{"type":"boolean","enum":[false]},"issued_at":{"type":"string","format":"date-time"},"valid_until":{"type":"string","format":"date-time"}},"required":["object","mode","status","binding","issued_at","valid_until","pricing_scope"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"401":{"description":"Invalid customer session, or balance mode without sign-in","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"403":{"description":"Customer account is unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"404":{"description":"Unknown family, product or offering","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"422":{"description":"Invalid estimate mode or parameter combination","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"503":{"description":"Catalog, balance, or provider pricing is temporarily unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}}}}},"/api/v1/social":{"post":{"operationId":"social","summary":"Universal social & search endpoint","description":"One endpoint for every platform. Send `platform`, `action` and neutral `params`; get clean structured JSON back. Async actions (facebook/profile, facebook/user_posts, facebook/comments, instagram/user_posts, instagram/discover, linkedin/comments, threads/discover_profiles, youku/transcript) return a `job_id` — poll `/api/v1/jobs/{id}`. Any capability can also be run async by sending `\"mode\": \"async\"` in the body, except the sync-only actions (jd/skus, xianyu/item_detail, xiaohongshu/comments_batch): they read everything they return (every target of a batch, or every SKU of a product) within one synchronous call and answer `\"mode\": \"async\"` with a 422 before charging. Empty results are not charged.\n\nSupported platform / action pairs:\n- airbnb / search (关键词搜索) — params: keyword | optional: currency, lang, locale, max_price, min_price | values: currency=aed/aud/bgn/brl/cad/chf/clp/cny/cop/crc/czk/dkk/egp/eur/gbp/ghs/hkd/hrk/huf/idr/ils/inr/jpy/kes/krw/kzt/mad/mxn/myr/nok/nzd/pen/php/pln/qar/ron/sar/sek/sgd/thb/try/twd/uah/ugx/usd/uyu/vnd/zar; lang=arxx/azaz/bgbg/bsba/caes/cscz/dadk/deat/dech/dede/delu/elgr/enae/enau/enca/engb/engy/enie/enin/ennz/ensg/enus/es419/esar/esbo/esbz/escl/esco/escr/esec/eses/esgt/eshn/esmx/esni/espa/espe/espy/essv/esus/esve/etee/fifi/frbe/frca/frch/frfr/frlu/gaie/heil/hiin/hrhr/huhu/hyam/idid/isis/itch/itit/jajp/kage/kokr/ltlt/lvlv/mkmk/msmy/mtmt/nlbe/nlnl/nono/plpl/ptbr/ptpt/roro/ruru/sksk/slsi/sqal/srme/srrs/svse/swxx/thth/tlph/trtr/ukua/vivn/xhza/zhcn/zhhk/zhtw/zhtwus/zhus/zuza | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, property_type, person_capacity, price, rating, rating_scale, review_count, lat, lng, location, host_name, amenities, image_url, check_in, check_out, platform\n- airbnb / property_detail (房源详情) — params: url | optional: city, max_price, min_price | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, property_type, room_type, person_capacity, bedrooms, bathrooms, beds, location, lat, lng, rating, rating_scale, review_count, price, currency, host_name, is_superhost, amenities, platform\n- airbnb / reviews (评价) — params: url | optional: lang, locale, since, sort | values: lang=arxx/azaz/bgbg/bsba/caes/cscz/dadk/deat/dech/dede/delu/elgr/enae/enau/enca/engb/engy/enie/enin/ennz/ensg/enus/es419/esar/esbo/esbz/escl/esco/escr/esec/eses/esgt/eshn/esmx/esni/espa/espe/espy/essv/esus/esve/etee/fifi/frbe/frca/frch/frfr/frlu/gaie/heil/hiin/hrhr/huhu/hyam/idid/isis/itch/itit/jajp/kage/kokr/ltlt/lvlv/mkmk/msmy/mtmt/nlbe/nlnl/nono/plpl/ptbr/ptpt/roro/ruru/sksk/slsi/sqal/srme/srrs/svse/swxx/thth/tlph/trtr/ukua/vivn/xhza/zhcn/zhhk/zhtw/zhtwus/zhus/zuza; sort=newest/relevance/top_rated | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, text, rating, rating_scale, posted_at, language, author_name, author_location, response, platform\n- airbnb / host (房东资料) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, text, avatar_url, languages, listing_count, rating, rating_scale, review_count, is_superhost, joined_at, listing_urls, platform\n- airbnb / calendar (房源可订日历) — params: url | optional: check_in, check_out, end_date, since, start_date, until | USD 0.001389/call (USD 1.39/1K) | returns: id, date, available, available_for_checkin, available_for_checkout, bookable, min_nights, max_nights, price, currency, platform\n- alibaba1688 / search (关键词搜索) — params: keyword | optional: city, max_price, min_price, sort | values: sort=popular/price_asc/price_desc/relevance | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, price_min, price_max, currency, min_order_quantity, order_count, repurchase_rate, category, city, province, supplier_name, is_out_of_stock, supports_dropship, images, supplier_type, supplier_years, supplier_shop_url, supplier_composite_score, sold_count_text, service_tags, product_badges, platform\n- alibaba1688 / product_detail (商品详情) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, price_min, price_max, currency, price_tiers, min_order_quantity, stock, sold_count, category, unit, supplier_name, supplier_fans, supplier_founded_year, supplier_type, supplier_favorited_count, supports_dropship, supports_sampling, is_out_of_stock, skus, images, description_images, video_url, specs, rating, rating_scale, review_count, positive_rate, sold_display, want_buy_count, category_path, services, promotions, customization_supported, winport_url, platform\n- alibaba1688 / image_search (平台内商品图搜) — params: image_url | up to 5 per call | USD 0.005556/call (USD 5.56/1K) | returns: id, url, title, price, currency, min_order_quantity, order_count, supplier_name, image_url, rank, platform\n- aliexpress / search (关键词搜索) — params: keyword | optional: min_price, min_rating, sort | values: sort=popular/price_asc/price_desc/relevance/top_rated | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | 1 call per 50 rows asked | returns: product_id, title, url, price, original_price, currency, discount, rating, rating_scale, orders_count, review_count, image_url, ships_from, seller_name, category, is_top_rated, free_shipping, images, search_rank, seller_rating, seller_url, platform, tags\n- aliexpress / profile (主页或对象详情) — params: url | optional: country, currency | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, text, price, original_price, currency, discount, sold_count, rating, rating_scale, review_count, shipping, variants, store_name, store_url, image_url, images, description_images, price_max, original_price_max, sold_text, attributes, category_id, category_path, ship_to, total_stock, video_url, store_id, seller_id, store_country, store_opened_at, store_positive_rate, store_rating, store_sold_180d, store_is_top_rated, platform\n- aliexpress / variants (商品变体) — params: url | optional: country, currency | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, text, price, original_price, currency, discount, sold_count, rating, rating_scale, review_count, shipping, variants, store_name, store_url, image_url, images, description_images, price_max, original_price_max, sold_text, attributes, category_id, category_path, ship_to, total_stock, video_url, store_id, seller_id, store_country, store_opened_at, store_positive_rate, store_rating, store_sold_180d, store_is_top_rated, platform\n- aliexpress / reviews (评价) — params: url | optional: sort | values: sort=newest/relevance | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: review_id, text, rating, rating_scale, posted_at, country, author, sku_info, helpful_count, logistics, product_id, is_anonymous, unhelpful_count, language, original_text, is_translated, review_labels, sku_id, platform, images\n- aliexpress / ratings (评分汇总) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: average_star, total_reviews, positive_rate, neutral_rate, negative_rate, five_star, four_star, three_star, two_star, one_star, platform | For now only average_star and total_reviews are returned; the star breakdown (five_star to one_star) and positive_rate, neutral_rate and negative_rate are temporarily not returned and appear again when available.\n- aliexpress / product_detail (商品详情) — params: url | optional: country, currency | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, text, price, original_price, currency, discount, sold_count, rating, rating_scale, review_count, shipping, variants, store_name, store_url, image_url, images, description_images, price_max, original_price_max, sold_text, attributes, category_id, category_path, ship_to, total_stock, video_url, store_id, seller_id, store_country, store_opened_at, store_positive_rate, store_rating, store_sold_180d, store_is_top_rated, platform\n- amazon / search (关键词搜索) — params: keyword | optional: domain, lang | values: lang=ar/bn/cs/da/de/en/es/fr/he/hi/ja/kn/ko/ml/mrta/nl/pl/pt/sv/ta/te/tr/zhcn/zhtw | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: asin, title, url, brand, price, list_price, currency, rating, rating_scale, rating_count, in_stock, category, image_url, description, is_amazon_choice, seller_name, platform, images, features, bestseller_ranks\n- amazon / profile (主页或对象详情) — params: url | optional: lang | values: lang=ar/bn/cs/da/de/en/es/fr/he/hi/ja/kn/ko/ml/mrta/nl/pl/pt/sv/ta/te/tr/zhcn/zhtw | USD 0.001389/call (USD 1.39/1K) | returns: asin, title, url, brand, price, list_price, currency, rating, rating_scale, rating_count, in_stock, category, image_url, description, is_amazon_choice, seller_name, platform, images, features, bestseller_ranks\n- amazon / reviews (评价) — params: url | optional: domain | USD 0.001389/call (USD 1.39/1K) | returns: review_id, title, text, rating, rating_scale, posted_at, helpful_count, is_verified_purchase, is_vine, variant, country, url, author_name, author_id, author_avatar_url, product_asin, platform, images\n- amazon / bestsellers (畅销榜) — params: keyword | optional: lang | values: lang=ar/bn/cs/da/de/en/es/fr/he/hi/ja/kn/ko/ml/mrta/nl/pl/pt/sv/ta/te/tr/zhcn/zhtw | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, rank, price, rating, rating_scale, review_count, offer_count, category, image_url, platform\n- amazon / sellers (卖家搜索) — params: keyword | optional: lang | values: lang=ar/bn/cs/da/de/en/es/fr/he/hi/ja/kn/ko/ml/mrta/nl/pl/pt/sv/ta/te/tr/zhcn/zhtw | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, business_name, phone, address, rating, rating_scale, review_count, product_asin, product_name, product_url, product_price, product_currency, product_brand, product_rating, platform\n- app_store / search (关键词搜索) — params: keyword | optional: country | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: app_id, name, url, bundle_id, developer, developer_id, developer_url, description, release_notes, version, price, currency, formatted_price, rating, rating_scale, rating_count, current_version_rating, current_version_rating_count, content_rating, category, icon_url, min_os, file_size_bytes, released_at, updated_at, platform, genres, languages, screenshot_urls\n- app_store / profile (主页或对象详情) — params: app_id | optional: country | USD 0.001389/call (USD 1.39/1K) | returns: app_id, name, url, bundle_id, developer, developer_id, developer_url, description, release_notes, version, price, currency, formatted_price, rating, rating_scale, rating_count, current_version_rating, current_version_rating_count, content_rating, category, icon_url, min_os, file_size_bytes, released_at, updated_at, platform, genres, languages, screenshot_urls\n- app_store / reviews (评价) — params: app_id | optional: country, sort | values: sort=most_helpful/newest | up to 500 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, title, text, rating, rating_scale, author, app_version, helpful_count, posted_at, app_id, app_name, platform\n- behance / search (关键词搜索) — params: keyword | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: user_id, username, name, url, avatar_url, company, location, country, follower_count, appreciation_count, view_count, available_for_hire, social_links, platform\n- behance / profile (主页或对象详情) — params: username | USD 0.001389/call (USD 1.39/1K) | returns: user_id, username, name, url, occupation, avatar_url, banner_url, company, location, country, follower_count, following_count, appreciation_count, view_count, available_for_hire, created_at, web_links, work_positions, social_links, platform\n- bilibili / search (关键词搜索) — params: keyword | optional: sort | values: sort=most_commented/most_liked/most_viewed/newest/relevance | up to 50 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, url, title, text, duration_seconds, duration_sec, duration_text, view_count, like_count, comment_count, danmaku_count, favorite_count, coin_count, share_count, thumbnail_url, posted_at, category, author_name, author_id, author_url, platform, tags\n- bilibili / profile (主页或对象详情) — params: user_id | USD 0.000556/call (USD 0.56/1K) | returns: user_id, name, url, bio, avatar_url, gender, level, follower_count, following_count, video_count, like_count, is_verified, verified_title, is_vip, vip_label, birthday, school, platform, recent_videos\n- bilibili / user_posts (用户内容) — params: user_id | up to 50 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, url, title, text, duration_seconds, duration_sec, duration_text, view_count, like_count, comment_count, danmaku_count, favorite_count, coin_count, share_count, thumbnail_url, posted_at, category, author_name, author_id, author_url, platform, tags\n- bilibili / video (视频详情) — params: url | USD 0.000556/call (USD 0.56/1K) | returns: id, url, title, text, duration_seconds, duration_sec, duration_text, view_count, like_count, comment_count, danmaku_count, favorite_count, coin_count, share_count, thumbnail_url, posted_at, category, author_name, author_id, author_url, platform, tags\n- bilibili / comments (评论) — params: url | up to 50 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, text, like_count, reply_count, author_name, author_id, author_url, posted_at, video_id, platform\n- bilibili / danmaku (弹幕) — params: url | USD 0.000556/call (USD 0.56/1K) | returns: id, text, video_id, video_time, video_time_seconds, mode, color, pool, sent_at, platform\n- bilibili / subtitles (字幕) — params: url | USD 0.000556/call (USD 0.56/1K) | returns: video_id, title, author_name, duration_seconds, duration_sec, language, text, platform, segments\n- bluesky / profile (主页或对象详情) — params: username | USD 0.001389/call (USD 1.39/1K) | returns: user_id, username, display_name, bio, url, avatar_url, is_verified, joined_at, source_username, platform, banner_url, follower_count, following_count, post_count\n- bluesky / user_posts (用户内容) — params: username | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, text, author_username, author_name, author_id, author_avatar_url, lang, like_count, repost_count, comment_count, quote_count, bookmark_count, is_reply, is_repost, posted_at, platform, media_urls, embed_url, embed_title, hashtags, mentions, links\n- bluesky / followers (粉丝列表) — params: username | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: user_id, username, display_name, bio, url, avatar_url, is_verified, joined_at, source_username, platform\n- bluesky / following (关注列表) — params: username | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: user_id, username, display_name, bio, url, avatar_url, is_verified, joined_at, source_username, platform\n- bluesky / search_people (人员搜索) — params: keyword | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: user_id, username, display_name, bio, url, avatar_url, is_verified, joined_at, source_username, platform\n- booking / search (关键词搜索) — params: keyword | optional: check_in, check_out, currency, lang, min_price, property_type, sort, star_rating | values: currency=aed/ars/aud/azn/bgn/bhd/brl/cad/chf/clp/cny/cop/czk/dkk/egp/eur/fjd/gbp/gel/hkd/huf/idr/ils/inr/jod/jpy/krw/kwd/kzt/mdl/mxn/myr/nad/nok/nzd/omr/pln/qar/ron/rub/sar/sek/sgd/thb/try/twd/uah/usd/xof/zar; lang=ar/bg/ca/cs/da/de/el/engb/enus/es/esar/et/fi/fr/he/hr/hu/id/is/it/ja/ko/lt/lv/ms/nl/no/pl/ptbr/ptpt/ro/ru/sk/sl/sr/sv/th/tl/tr/uk/vi/zhcn/zhtw; sort=distance/popular/top_rated; star_rating=1_star/2_stars/3_stars/4_stars/5_stars/any/unrated | up to 30 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, name, type, url, text, stars, rating, rating_scale, rating_label, review_count, price, currency, breakfast, hotel_chain, check_in_date, check_out_date, address, city, country, latitude, longitude, image_url, platform, category_ratings, image_urls, facilities\n- booking / profile (主页或对象详情) — params: url | optional: check_in, check_out, currency, lang | values: currency=aed/ars/aud/azn/bgn/bhd/brl/cad/chf/clp/cny/cop/czk/dkk/egp/eur/fjd/gbp/gel/hkd/huf/idr/ils/inr/jod/jpy/krw/kwd/kzt/mdl/mxn/myr/nad/nok/nzd/omr/pln/qar/ron/rub/sar/sek/sgd/thb/try/twd/uah/usd/xof/zar; lang=ar/bg/ca/cs/da/de/el/engb/enus/es/esar/et/fi/fr/he/hr/hu/id/is/it/ja/ko/lt/lv/ms/nl/no/pl/ptbr/ptpt/ro/ru/sk/sl/sr/sv/th/tl/tr/uk/vi/zhcn/zhtw | USD 0.001389/call (USD 1.39/1K) | returns: id, name, type, url, text, stars, rating, rating_scale, rating_label, review_count, price, currency, breakfast, hotel_chain, check_in_date, check_out_date, address, city, country, latitude, longitude, image_url, platform, category_ratings, image_urls, facilities\n- booking / reviews (评价) — params: url | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, title, text_positive, text_negative, rating, rating_scale, posted_at, stay_date, author_name, author_country, traveler_type, room_name, nights, language, owner_response, platform\n- booking / prices (价格与房型) — params: url | optional: adults, check_in, currency, days, rooms, start_date | USD 0.001389/call (USD 1.39/1K) | returns: id, url, hotel_name, room_name, check_in, check_out, price, original_price, discount_percent, currency, taxes_included, is_sold_out, availability_status, rooms_left, min_stay, bed_type, max_guests, room_size_sqm, room_view, meal_plan, is_breakfast_included, is_refundable, rate_options_count, platform | Temporarily unavailable: we are restoring this capability. Until then calls are refused with 503 `unavailable` (error.reason `temporarily_unavailable`) and a Retry-After header, and are not charged.\n- capterra / reviews (评价) — params: company | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, pros, cons, rating, rating_scale, ease_of_use_rating, customer_service_rating, features_rating, value_rating, recommend_rating, author_name, author_job_title, author_industry, company_size, usage_duration, author_verified, incentivized, source, chosen_reasons, switching_reasons, vendor_response, product_url, posted_at, platform\n- capterra / category (分类列表) — params: category | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, name, url, rating, rating_scale, review_count, description, domain, website, platform\n- clutch / search (关键词搜索) — params: keyword | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, text, location, rating, rating_scale, review_count, employees_count, hourly_rate, min_project_size, project_count, services, tags, is_verified, website, image_url, email, emails, phone, platform\n- clutch / reviews (评价) — params: url | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, quote, rating, rating_scale, rating_quality, rating_schedule, rating_cost, rating_refer, project_size, project_length, services, reviewer_position, reviewer_industry, reviewer_company_size, reviewer_location, posted_at, platform\n- clutch / company (公司资料) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, text, website, employees_count, review_count, service_lines, locations, social_links, business_entity, email, emails, phone, platform\n- craigslist / search (关键词搜索) — params: keyword | optional: category, country, location, max_price, min_price, region, sort | values: category=cars_trucks/community/electronics/events/for_sale/furniture/gigs/housing_apartments_houses/housing_rooms_shares/housing_sublets_temporary/jobs/resumes/services; country=anchorage/atlanta/austin/baltimore/boston/calgary/charlotte/chicago/cincinnati/cleveland/columbus/dallas/denver/detroit/edmonton/hartford/honolulu/houston/indianapolis/kansascity/lasvegas/losangeles/miami/milwaukee/minneapolis/montreal/nashville/newhaven/newyork/orlando/ottawa/philadelphia/phoenix/pittsburgh/portland/providence/raleigh/richmond/sacramento/salem/saltlakecity/sanantonio/sandiego/seattle/sfbay/stlouis/tampa/toronto/vancouver/washingtondc; sort=newest/price_asc/relevance | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, price, currency, category, location, posted_at, lat, lng, emails, phones, images, platform\n- crexi / search (关键词搜索) — params: keyword | optional: max_price, min_price, property_types, sort, state, states, transaction_type | values: sort=newest/relevance; transaction_type=lease/sale | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, text, address, city, county, state, postal_code, latitude, longitude, price, area_sqft, property_types, status, brokerage_name, posted_at, updated_at, image_url, is_sold, is_unpriced, in_opportunity_zone, platform\n- crexi / property_detail (房源详情) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, text, highlights, status, price, address, city, county, state, postal_code, lat, lng, property_types, property_subtypes, tenancy, occupancy, stories, listed_at, updated_at, platform\n- dailymotion / search (关键词搜索) — params: keyword | optional: date_range, sort, upload_date | values: sort=most_viewed/newest/relevance; date_range=month/today/week/year; upload_date=month/today/week/year | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, description, duration_seconds, duration_sec, view_count, like_count, comment_count, category, tags, is_live, thumbnail_url, channel_id, channel_name, channel_url, created_at, platform\n- dailymotion / video (视频详情) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, description, duration_seconds, duration_sec, view_count, like_count, comment_count, category, tags, is_live, thumbnail_url, channel_id, channel_name, channel_url, created_at, platform\n- dailymotion / comments (评论) — params: url | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: comment_id, video_id, video_url, text, author_name, author_id, created_at, platform\n- dailymotion / channel (频道资料) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: channel_id, username, name, display_name, description, url, avatar_url, follower_count, video_count, created_at, recent_videos, platform\n- dailymotion / channel_videos (频道视频) — params: url | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, description, duration_seconds, duration_sec, view_count, like_count, comment_count, category, tags, is_live, thumbnail_url, channel_id, channel_name, channel_url, created_at, platform\n- dailymotion / playlist (播放列表) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: playlist_id, url, name, description, video_count, thumbnail_url, channel_id, channel_name, created_at, videos, platform\n- deviantart / search (关键词搜索) — params: keyword | optional: category | values: category=any_category/designs/digital_art/fan_art/film_animation/literature/photography/traditional_art | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, category, image_url, thumbnail_url, author_username, author_name, author_url, author_avatar_url, posted_at, author_emails, author_email_domains, platform\n- deviantart / gallery (作品画廊) — params: username | optional: category | values: category=any_category/designs/digital_art/fan_art/film_animation/literature/photography/traditional_art | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, category, image_url, thumbnail_url, author_username, author_name, author_url, author_avatar_url, posted_at, author_emails, author_email_domains, platform\n- deviantart / popular (热门作品) — params: — | optional: category | values: category=any_category/designs/digital_art/fan_art/film_animation/literature/photography/traditional_art | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, category, image_url, thumbnail_url, author_username, author_name, author_url, author_avatar_url, posted_at, author_emails, author_email_domains, platform\n- deviantart / profile (主页或对象详情) — params: username | USD 0.001389/call (USD 1.39/1K) | returns: username, display_name, bio, avatar_url, url, emails, email_domains, platform\n- dewu / product_summary (商品价格概要) — params: url | USD 0.005556/call (USD 5.56/1K) | returns: spu_id, url, title, original_title, brand_id, brand, article_number, category_id, category, price, price_min, price_max, official_retail_price, currency, image_url, images, size_labels, sku_count, fetched_at, scope, platform, selected_sku_id\n- dice / search (关键词搜索) — params: keyword | optional: location, posted_date | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, company_name, location, posted_at, employment_type, is_remote, platform, salary, text, employer_type, easy_apply\n- discord / search (关键词搜索) — params: keyword | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, name, url, text, member_count, online_count, boost_count, vanity_url_code, language, categories, keywords, icon_url, banner_url, verification_level, is_nsfw, created_at, directory_url, platform\n- discord / directory (目录与社区发现) — params: — | optional: category | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, name, url, text, member_count, online_count, boost_count, vanity_url_code, language, categories, keywords, icon_url, banner_url, verification_level, is_nsfw, created_at, directory_url, platform\n- discord / server (服务器资料) — params: invite | optional: code, url | USD 0.001389/call (USD 1.39/1K) | returns: id, name, url, text, member_count, online_count, boost_count, invite_code, vanity_url_code, icon_url, banner_url, verification_level, nsfw_level, channel_name, channel_type, inviter_username, inviter_name, expires_at, platform\n- discord / search_users (用户搜索) — params: keyword | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, username, name, avatar, clan_tag, server_count, invite_count, created_at, platform\n- douban / search (关键词搜索) — params: keyword | optional: search_type, type | values: search_type=all/book/movie/music; type=all/book/movie/music | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, subject_type, year, director, cast, author, artist, rating, rating_scale, rating_count, cover_url, platform\n- douban / reviews (评价) — params: url | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, subject_id, subject_name, subject_type, title, text, rating, rating_scale, rating_label, author_name, author_url, author_avatar_url, reply_count, posted_at, platform\n- douban / comments (评论) — params: url | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, subject_id, subject_name, subject_type, text, rating, rating_scale, rating_label, author_name, author_url, author_avatar_url, vote_count, posted_at, platform\n- douban / group_topic (小组话题) — params: url | optional: max_replies | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, group_id, group_name, group_url, author_name, author_url, reply_count, replies, posted_at, platform | Temporarily unavailable: we are restoring this capability. Until then calls are refused with 503 `unavailable` (error.reason `temporarily_unavailable`) and a Retry-After header, and are not charged.\n- douyin / search (关键词搜索) — params: keyword | optional: publish_time, sort | values: publish_time=half_year/one_day/one_week/unlimited; sort=most_liked/newest/relevance | up to 50 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, url, text, media_type, video_url, like_count, comment_count, share_count, collect_count, author_name, author_id, author_douyin_id, author_avatar_url, cover_image_url, author_follower_count, posted_at, platform, duration_sec, duration_seconds, hashtags, view_count, region, author_uid, author_is_verified, author_bio, author_following_count, author_like_count, author_video_count, author_ip_location, title, music, download_count, forward_count, is_pinned, is_ad, video_tags, video_width, video_height, video_resolution, animated_cover_url, image_urls\n- douyin / profile (主页或对象详情) — params: user_id | products: douyin (抖音), douyin_creator (抖音达人) | USD 0.000556/call (USD 0.56/1K) | returns: user_id, douyin_id, nickname, bio, url, follower_count, following_count, like_count, video_count, gender, ip_location, is_verified, avatar_url, uid, background_image_url, country, language, is_live, likes_given_count, has_shop, platform, verify_reason\n- douyin / user_posts (用户内容) — params: user_id | products: douyin (抖音), douyin_creator (抖音达人) | optional: page_token, since | up to 100 per call | paged via next_page_token | USD 0.000556/call (USD 0.56/1K) | returns: next_page_token, id, url, text, media_type, video_url, like_count, comment_count, share_count, collect_count, author_name, author_id, author_douyin_id, author_avatar_url, cover_image_url, author_follower_count, posted_at, platform, duration_sec, duration_seconds, hashtags, view_count, region, author_uid, author_is_verified, author_bio, author_following_count, author_like_count, author_video_count, author_ip_location, title, music, download_count, forward_count, is_pinned, is_ad, video_tags, video_width, video_height, video_resolution, animated_cover_url, image_urls\n- douyin / video (视频详情) — params: url | USD 0.000556/call (USD 0.56/1K) | returns: id, url, text, media_type, video_url, like_count, comment_count, share_count, collect_count, author_name, author_id, author_douyin_id, author_avatar_url, cover_image_url, author_follower_count, posted_at, platform, duration_sec, duration_seconds, hashtags, view_count, region, author_uid, author_is_verified, author_bio, author_following_count, author_like_count, author_video_count, author_ip_location, title, music, download_count, forward_count, is_pinned, is_ad, video_tags, video_width, video_height, video_resolution, animated_cover_url, image_urls\n- douyin / comments (评论) — params: url | optional: page_token | up to 150 per call | paged via next_page_token | USD 0.000556/call (USD 0.56/1K) | 1 call per 20 rows asked | returns: next_page_token, id, text, like_count, reply_count, author_name, author_id, ip_location, is_hot, is_reply, reply_to_id, posted_at, video_id, platform, liked_by_author, author_avatar_url, author_uid, images, mentioned_users\n- douyin / trending (热榜) — params: — | optional: boards | values: boards=challenge/entertainment/hotspot/seeding/social | up to 60 per call | USD 0.000556/call (USD 0.56/1K) | returns: rank, keyword, hot_value, video_count, board, image_url, event_time, sentence_id, group_id, label, word_type, article_count, is_pinned, max_rank, live_room_count, platform\n- douyin / transcript (视频文稿) — params: url | USD 0.000556/call (USD 0.56/1K) | returns: id, url, title, text, posted_at, play_count, like_count, comment_count, share_count, collect_count, author_name, author_avatar, author_follower_count, segments, video_url, audio_url, duration_sec, duration_seconds, recommend_count, author_like_count, platform\n- douyin / creator_search (达人搜索) — params: keyword | products: douyin_creator (抖音达人) | optional: follower_range, user_type | values: follower_range=100k_to_1m/10k_to_100k/1k_to_10k/over_1m/under_1k; user_type=business/general/verified_individual | up to 20 per call | USD 0.000556/call (USD 0.56/1K) | returns: user_id, douyin_id, nickname, url, avatar_url, follower_count, gender, is_verified, verify_reason, is_live, uid, source_keyword, platform\n- douyin / creator_audience (达人粉丝画像) — params: user_id | products: douyin_creator (抖音达人) | optional: dimension | values: dimension=age/device_price_band/gender/province | USD 0.000556/call (USD 0.56/1K) | returns: user_id, audience_distribution, audience_tgi, dimension_code, platform\n- douyin / creator_trend (达人涨粉趋势) — params: user_id | products: douyin_creator (抖音达人) | USD 0.000556/call (USD 0.56/1K) | returns: user_id, follower_trend, average_follower_count, dimension_code, platform\n- douyin / creator_benchmark (达人同类对标) — params: user_id | products: douyin_creator (抖音达人) | USD 0.000556/call (USD 0.56/1K) | returns: user_id, average_post_count, average_comment_count, average_share_count, average_follower_growth, average_like_count, post_count_percentile, comment_count_percentile, share_count_percentile, follower_growth_percentile, like_count_percentile, platform\n- douyin / xingtu_creator_search (星图达人搜索) — params: keyword | products: douyin_creator (抖音达人) | up to 20 per call | USD 0.000556/call (USD 0.56/1K) | returns: creator_id, user_id, nickname, follower_count, gender, city, province, creator_score, engagement_rate_30d, expected_play_count, expected_natural_play_count, interaction_median_30d, play_over_rate_30d, follower_growth_30d, follower_growth_rate_15d, content_themes, ecommerce_level, ecommerce_score, gmv_30d_range, gpm_30d_range, average_order_value_30d_range, commercial_index, conversion_index, spread_index, shopping_index, quote_1_20s_cny, quote_20_60s_cny, quote_60s_plus_cny, platform\n- douyin / xingtu_creator_analytics (星图达人分析) — params: douyin_id | products: douyin_creator (抖音达人) | USD 0.000556/call (USD 0.56/1K) | returns: creator_id, creator_type, follower_count, average_play_count, city, province, gender, category_id, content_themes, tags, creator_grade, is_xingtu_creator, ecommerce_enabled, lowest_quote_cny, platform\n- douyin / xingtu_rate_card (星图达人报价) — params: douyin_id | products: douyin_creator (抖音达人) | USD 0.000556/call (USD 0.56/1K) | returns: creator_id, rate_tiers, platform\n- douyin / xingtu_creator_rankings (星图达人榜单) — params: industry, ranking_type, time_window | products: douyin_creator (抖音达人) | up to 5 per call | USD 0.000556/call (USD 0.56/1K) | returns: creator_id, user_id, url, nickname, avatar_url, gender, city, province, follower_count, cpm_cny, completed_order_range, repurchase_rate_range, item_order_rate, average_view_count, industry, rank, previous_rank, ranking_score, is_new, ranking_board, period_days, snapshot_date, source_kind, platform\n- douyin / product_search (商品搜索) — params: keyword | products: douyin (抖音), douyin_creator (抖音达人) | up to 5 per call | USD 0.000556/call (USD 0.56/1K) | returns: product_id, promotion_id, title, url, image_url, white_image_url, price_cny, price_cny_minor, price_label, monthly_sales, good_review_ratio, sales_trend, category_path, category_ids, category_depth, shop_id, shop_name, shop_logo_url, shop_score, commission_rate_percent, commission_cny, cooperating_creator_count, tags, source_keyword, search_rank, recommend_reason, platform\n- douyin / product_detail (商品详情) — params: product_id | products: douyin (抖音), douyin_creator (抖音达人) | USD 0.000556/call (USD 0.56/1K) | returns: product_id, title, price_cny, discount_price_cny, sales_text, sold_count, shop_id, shop_name, shop_avatar_url, image_url, main_image_urls, detail_image_urls, assurances, shipping_fee_text, shipping_estimate_text, variant_groups, on_sale, platform\n- douyin / live_product_search (直播商品搜索) — params: keyword | products: douyin (抖音), douyin_creator (抖音达人) | up to 3 per call | USD 0.000556/call (USD 0.56/1K) | returns: product_id, sku_id, title, image_url, price_cny, shop_id, live_room_id, is_live_product, source_keyword, platform\n- dribbble / search (关键词搜索) — params: — | optional: category, keyword, location, min_budget, min_rating, pro_only | values: min_rating=1/2/3/4/any; category=animation/branding/illustration/mobile/print/product-design/typography/web-design; keyword=animation/branding/illustration/mobile/print/product-design/typography/web-design | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: user_id, username, name, url, avatar_url, location, rating, rating_scale, review_count, projects_completed, starting_price, response_time, services_count, is_pro, skills, platform\n- dribbble / shots (设计作品) — params: keyword | optional: query, sort | values: sort=most_viewed/newest/popular | up to 60 per call | USD 0.001389/call (USD 1.39/1K) | returns: shot_id, title, url, author_name, author_url, view_count, like_count, comment_count, tags, image_url, is_pro, is_animated, platform\n- dribbble / profile (主页或对象详情) — params: username | USD 0.001389/call (USD 1.39/1K) | returns: user_id, username, name, bio, url, avatar_url, location, follower_count, rating, rating_scale, platform\n- ebay / search (关键词搜索) — params: keyword | optional: condition, country, domain, max_price, min_price, sold_only | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: item_id, title, url, price, price_text, currency, condition, shipping, seller, image_url, scraped_at, platform\n- ebay / store (店铺) — params: seller | optional: country, domain, store, url, username | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: item_id, title, url, price, price_text, currency, condition, shipping, seller, image_url, scraped_at, platform\n- ebay / reviews (评价) — params: seller, item_id | optional: country, domain, product_id, q, seller_name, url, username | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: text, rating, rating_scale, username, submitted_at, seller_reply, image_count, reviewer_feedback_score, reviewer_feedback_star, product_name, product_id, product_price, platform, image_url, images\n- ebay / sold (已售商品) — params: keyword | optional: days, min_price, site, sort | values: sort=distance/newest | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, sold_price, shipping_price, total_price, currency, sold_at, condition, listing_type, best_offer_accepted, category, seller_username, seller_feedback_score, seller_positive_percent, image_url, platform\n- etsy / search (关键词搜索) — params: keyword | optional: currency, exclude_keywords, min_price, sort | values: sort=newest/price_asc/price_desc/relevance; currency=aud/brl/cad/chf/dkk/eur/gbp/hkd/inr/jpy/mxn/nok/nzd/sek/sgd/usd | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: listing_id, title, url, price, list_price, currency, rating, rating_scale, shop_id, shop_name, shop_rating, shop_review_count, on_sale, free_shipping, is_digital, image_url, platform\n- etsy / profile (主页或对象详情) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: listing_id, title, url, description, materials, category, price, price_min, price_max, currency, review_count, shop_id, shop_name, shop_review_count, shop_years, ships_from_country, image_url, platform, images, review_highlights, review_tags, variants\n- etsy / reviews (评价) — params: shop | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: review_id, text, rating, rating_scale, author_name, author_username, posted_at, listing_title, seller_response, product_url, shop_name, shop_url, shop_rating, shop_review_count, platform\n- etsy / shop (店铺资料) — params: shop | optional: shop_name, username | USD 0.001389/call (USD 1.39/1K) | returns: shop_id, shop_name, shop_url, is_star_seller, active_listing_count, on_etsy_since, location, platform\n- etsy / product_detail (商品详情) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, text, price, original_price, currency, in_stock_quantity, rating, rating_scale, review_count, shop_id, variants, tags, image_url, platform\n- eventbrite / search (关键词搜索) — params: keyword | optional: city, location | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, category, format, start_at, end_at, is_online, capacity, attendee_count, is_sold_out, price, organizer_name, image_url, platform\n- expedia / search (关键词搜索) — params: keyword | optional: currency, sort | values: sort=distance/price_asc/price_desc/top_rated | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: hotel_id, name, url, neighborhood, region, rating, rating_scale, rating_label, review_count, star_rating, price_per_night, price_total, discount_percent, vip_access, latitude, longitude, image_url, provider, platform\n- expedia / profile (主页或对象详情) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: hotel_id, hotel_name, hotel_url, rating, rating_scale, rating_label, review_count, star_rating, property_type, address, latitude, longitude, provider, category_ratings, languages, review_summary, platform\n- expedia / reviews (评价) — params: url | optional: reviews_from, since, sort | values: sort=most_helpful/newest/relevance/top_rated | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, text, title, rating, rating_scale, rating_label, posted_at, stay_date, author_name, trip_type, stay_duration, traveled_with, verified, language, hotel_id, hotel_name, hotel_url, hotel_rating, platform, liked, disliked, image_urls, owner_response\n- expedia / car_rental (租车报价) — params: keyword | optional: check_in, check_out, drop_off_date, pick_up_date | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, vehicle_category, vendor_name, price, price_total, rating, rating_scale, rating_label, attributes, pick_up_location, drop_off_location, pick_up_date, drop_off_date, pick_up_time, drop_off_time, image_url, platform\n- facebook / search (关键词搜索) — params: keyword | optional: content_type, since, until | values: content_type=latest/most_popular | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, text, author_name, author_username, like_count, comment_count, share_count, posted_at, platform\n- facebook / profile (主页或对象详情) (async) — params: url | USD 0.002778/call (USD 2.78/1K) | returns: id, name, url, bio, category, like_count, follower_count, is_verified, phone, email, website, rating, rating_scale, avatar_url, platform\n- facebook / user_posts (用户内容) (async) — params: url | up to 50 per call | USD 0.002778/call (USD 2.78/1K) | returns: id, url, text, author_name, author_username, like_count, comment_count, share_count, posted_at, platform\n- facebook / post (单条内容) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: id, url, text, author_name, author_username, like_count, comment_count, share_count, posted_at, platform\n- facebook / comments (评论) (async) — params: url | up to 50 per call | USD 0.002778/call (USD 2.78/1K) | returns: id, text, author_name, author_username, depth, reply_to_id, comment_url, author_id, author_url, like_count, reply_count, posted_at, platform\n- facebook / followers (粉丝数量) — params: username | optional: channel | USD 0.001389/call (USD 1.39/1K) | returns: id, username, url, follower_count, following_count, post_count, like_count, connection_count, precision, platform\n- facebook / ads (广告素材) — params: keyword | optional: country, status | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, text, title, cta_text, link_url, is_active, started_at, ended_at, platforms, variant_count, advertiser_id, advertiser_name, advertiser_url, advertiser_likes, image_url, platform\n- facebook / group_posts (群组帖子) — params: url | optional: sort | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, text, posted_at, like_count, comment_count, share_count, author_id, author_name, author_url, group_url, platform\n- facebook / marketplace (市集商品) — params: keyword | optional: location | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, price, currency, city, state, condition, image_url, posted_at, platform\n- facebook / reviews (评价) — params: url | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, text, is_recommended, rating, rating_scale, posted_at, like_count, comment_count, author_id, author_name, author_url, platform\n- flickr / search (关键词搜索) — params: keyword | optional: media_type, sort | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, image_url, media_type, author_name, author_id, tags, taken_at, posted_at, platform\n- flickr / user_posts (用户内容) — params: user_id | optional: author_id, media_type, sort, username | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, image_url, media_type, author_name, author_id, tags, taken_at, posted_at, platform\n- g2 / search (关键词搜索) — params: keyword | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: product_name, url, reviews_url, description, vendor_name, vendor_url, rating, rating_scale, rating_out_of_ten, review_count, pricing_type, item_type, rank, is_sponsored, image_url, categories, platform\n- g2 / profile (主页或对象详情) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: slug, name, description, url, reviews_url, alternatives_url, vendor_name, vendor_url, rating, rating_scale, rating_out_of_ten, review_count, pricing_tiers, features_text, image_urls, platform\n- g2 / reviews (评价) — params: url | optional: sort | values: sort=newest/relevance/top_rated | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: record_type, product_slug, url, aggregate_rating, total_reviews, summary_text, top_pros, top_cons, platform, id, title, text, rating, rating_scale, responses, author_name, author_job_title, author_business_size, product_name, posted_at\n- g2 / vendor (厂商资料) — params: url | optional: slug, vendor, vendor_url | USD 0.001389/call (USD 1.39/1K) | returns: slug, name, url, description, founded, hq_location, ownership, total_revenue, employees, phone, product_count, total_reviews, products, platform\n- g2 / alternatives (同类替代产品) — params: url | up to 30 per call | USD 0.001389/call (USD 1.39/1K) | returns: name, slug, url, description, vendor_name, rating, rating_scale, rating_out_of_ten, review_count, entry_level_price, rank, source_product_slug, image_url, platform\n- g2 / compare (产品对比) — params: slugs | optional: combined_slug, url | USD 0.001389/call (USD 1.39/1K) | returns: url, combined_slug, product_count, products, ratings, alternatives_shown, platform | Temporarily unavailable: we are restoring this capability. Until then calls are refused with 503 `unavailable` (error.reason `temporarily_unavailable`) and a Retry-After header, and are not charged.\n- g2 / category (分类列表) — params: category | up to 40 per call | USD 0.001389/call (USD 1.39/1K) | returns: name, slug, url, description, vendor_name, vendor_slug, category, category_slug, rating, rating_scale, rating_out_of_ten, review_count, entry_level_price, rank, page, is_sponsored, awards, image_url, platform\n- gab / profile (主页或对象详情) — params: username | USD 0.001389/call (USD 1.39/1K) | returns: user_id, username, display_name, bio, url, follower_count, following_count, post_count, is_verified, is_pro, avatar_url, header_url, created_at, platform\n- gab / user_posts (用户内容) — params: username | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, text, author_username, author_name, like_count, repost_count, reply_count, media_urls, posted_at, platform\n- gab / post (单条内容) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: id, url, text, author_username, author_name, like_count, repost_count, reply_count, media_urls, posted_at, platform\n- gab / replies (回复列表) — params: url | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, text, author_username, author_name, like_count, repost_count, reply_count, media_urls, posted_at, platform\n- glassdoor / search (关键词搜索) — params: keyword | optional: company, domain, query | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: name, company_id, url, rating, rating_scale, review_count, salary_count, job_count, headquarters, size, size_category, description, logo_url, platform\n- glassdoor / profile (主页或对象详情) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: name, short_name, company_id, website, description, headquarters, size, revenue, type, founded_year, stock_symbol, industry, logo_url, cover_photo_url, reviews_url, jobs_url, salaries_url, interviews_url, platform, competitors, awards\n- glassdoor / reviews (评价) — params: url | optional: since, sort, start_date | values: sort=newest/relevance/top_rated | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, title, pros, cons, advice, rating, rating_scale, job_title, location, employment_length_years, is_current_employee, language, helpful_count, recommend, ceo_approval, business_outlook, rating_work_life_balance, rating_culture_values, rating_diversity_inclusion, rating_senior_leadership, rating_career_opportunities, rating_comp_benefits, has_employer_response, posted_at, company_name, platform\n- glassdoor / salaries (薪资) — params: url | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: job_title, pay_period, currency, salary_count, base_pay_mean, base_pay_median, base_pay_p10, base_pay_p90, total_pay_mean, total_pay_median, cash_bonus_mean, company_rating, platform\n- glassdoor / interviews (面试评价) — params: url | optional: since | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, job_title, difficulty, experience, outcome, source, location, process_description, advice, negotiation, duration_days, is_current_employee, helpful_count, company_name, posted_at, platform, questions\n- glassdoor / jobs (职位搜索) — params: url | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: job_id, title, employer, employer_id, location, description, salary_min, salary_max, salary_median, salary_currency, salary_period, company_rating, age_in_days, easy_apply, sponsored, apply_url, platform\n- google_maps_reviews / search (关键词搜索) — params: keyword | optional: country, language, location, page_token | up to 50 per call | paged via next_page_token (up to 120 rows; beyond 60 use mode=async) | USD 0.001389/call (USD 1.39/1K) | returns: place_id, name, url, category, categories, description, address, city, state, postal_code, country_code, lat, lng, phone, website, rating, rating_scale, review_count, price, permanently_closed, image_url, platform\n- google_maps_reviews / profile (主页或对象详情) — params: url | optional: city, language, since, sort | values: sort=newest/relevance | USD 0.001389/call (USD 1.39/1K) | returns: place_id, name, url, category, categories, description, address, neighborhood, city, state, postal_code, country_code, plus_code, lat, lng, phone, website, rating, rating_scale, review_count, image_count, price, permanently_closed, temporarily_closed, opening_hours, image_url, platform\n- google_maps_reviews / reviews (评价) — params: url | optional: lang, language, page_token, since, sort | values: lang=af/am/ar/az/bg/bn/bs/ca/cs/da/de/el/en/es/es419/et/eu/fa/fi/fil/fr/gl/gu/hi/hr/hu/hy/id/is/it/iw/ja/ka/kk/km/kn/ko/ky/lo/lt/lv/mk/ml/mn/mr/ms/my/ne/nl/no/pa/pl/ptbr/ptpt/ro/ru/si/sk/sl/sq/sr/sv/sw/ta/te/th/tr/uk/ur/uz/vi/zhcn/zhtw/zu; sort=newest/relevance | up to 100 per call | paged via next_page_token (up to 400 rows; beyond 200 use mode=async) | USD 0.001389/call (USD 1.39/1K) | returns: id, text, rating, rating_scale, reviewer_name, reviewer_review_count, is_local_guide, like_count, posted_at, url, owner_response, owner_response_at, detailed_rating, image_urls, place_id, place_name, platform\n- google_play / search (关键词搜索) — params: keyword | optional: country, language, page_token | up to 100 per call | paged via next_page_token (up to 100 rows) | USD 0.001389/call (USD 1.39/1K) | returns: app_id, url, name, summary, description, developer, developer_email, developer_website, score, rating_count, review_count, installs, min_installs, price, is_free, currency, category, content_rating, contains_ads, offers_iap, version, released, updated_at, android_version, icon_url, header_image_url, privacy_policy, platform, screenshots, rating_histogram\n- google_play / profile (主页或对象详情) — params: app_id | optional: country, language | USD 0.001389/call (USD 1.39/1K) | returns: app_id, url, name, summary, description, developer, developer_email, developer_website, score, rating_count, review_count, installs, min_installs, price, is_free, currency, category, content_rating, contains_ads, offers_iap, version, released, updated_at, android_version, icon_url, header_image_url, privacy_policy, platform, screenshots, rating_histogram\n- google_play / reviews (评价) — params: app_id | optional: country, language, page_token, sort | values: sort=newest/top_rated | up to 200 per call | paged via next_page_token (up to 200 rows) | USD 0.001389/call (USD 1.39/1K) | returns: id, app_id, text, title, score, author_name, author_avatar_url, thumbs_up, reply_text, reply_at, app_version, language, url, posted_at, platform\n- indeed / search (关键词搜索) — params: keyword | optional: company_details, country, location, region | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, company, company_url, location, salary, job_type, company_rating, company_review_count, apply_url, is_expired, posted_at, email, emails, phone, platform\n- indeed / profile (主页或对象详情) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: name, url, website, text, rating, rating_scale, review_count, image_url, size_min, size_max, platform\n- indeed / company_reviews (公司评价) — params: company | optional: until | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, rating, rating_scale, rating_compensation, rating_culture, rating_job_security, rating_management, rating_work_life, job_title, location, country, is_current_employee, helpful_count, posted_at, platform\n- indeed / salaries (薪资) — params: company | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: job_title, category, salary, salary_type, reported_count, company_name, company_salary_count, updated_at, platform, location, url\n- indeed / interviews (面试评价) — params: company | USD 0.001389/call (USD 1.39/1K) | returns: id, url, company_name, hiring_durations, questions, process_stories, platform\n- instagram / post (单条内容) — params: urls | up to 11 per call | USD 0.000556/call (USD 0.56/1K) | returns: post_id, url, text, media_type, like_count, comment_count, view_count, author_username, author_name, posted_at, location, author_follower_count, hashtags, top_comments\n- instagram / profile (主页或对象详情) — params: username | USD 0.000556/call (USD 0.56/1K) | returns: username, display_name, bio, follower_count, following_count, post_count, is_private, is_verified, is_business, is_professional, category, external_url, avatar_url, recent_posts\n- instagram / persona (账号画像) — params: username | USD 0.000556/call (USD 0.56/1K) | returns: username, display_name, bio, follower_count, following_count, post_count, is_private, is_verified, is_business, is_professional, category, external_url, avatar_url, recent_posts\n- instagram / user_posts (用户内容) (async) — params: username | up to 200 per call | USD 0.000556/call (USD 0.56/1K) | returns: post_id, url, text, media_type, like_count, comment_count, view_count, author_username, author_name, posted_at, location, author_follower_count, hashtags, top_comments\n- instagram / discover (内容发现) (async) — params: keyword | optional: results_type | values: results_type=reel/reels | up to 200 per call | USD 0.000556/call (USD 0.56/1K) | returns: post_id, url, text, media_type, like_count, comment_count, view_count, author_username, author_name, posted_at, location, author_follower_count, hashtags, top_comments\n- instagram / comments (评论) — params: url | up to 100 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, text, url, like_count, reply_count, author_username, author_name, is_verified, posted_at, post_url, platform\n- instagram / reels (Reels 短视频) — params: username | up to 100 per call | USD 0.000556/call (USD 0.56/1K) | returns: post_id, url, text, media_type, like_count, comment_count, view_count, author_username, author_name, posted_at, location, author_follower_count, hashtags, top_comments, play_count, duration_sec, duration_seconds, transcript, music, platform\n- instagram / hashtag (话题内容) — params: hashtag | optional: results_type, tag | values: results_type=reel/reels | up to 100 per call | USD 0.000556/call (USD 0.56/1K) | returns: post_id, url, text, media_type, like_count, comment_count, view_count, author_username, author_name, posted_at, location, author_follower_count, hashtags, top_comments, platform\n- instagram / followers (粉丝数量) — params: username | USD 0.000556/call (USD 0.56/1K) | returns: id, username, url, name, avatar_url, follower_count, following_count, platform\n- instagram / followers_list (粉丝列表) — params: username | up to 500 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, username, url, name, avatar_url, is_private, is_verified, relation, of_user, platform\n- instagram / following_list (关注列表) — params: username | up to 500 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, username, url, name, avatar_url, is_private, is_verified, relation, of_user, platform\n- iqiyi / search (关键词搜索) — params: keyword | optional: category, publish_date, published, quality, scrape_additional_info, site, sort | values: category=advertisement/all/animation/beauty/car/comedy/documentary/entertainment/fashion/finance/game/health/life/military/mother_baby/movie/music/news_info/originals/short_films/sports/square_dance/talk_shows/technology/trailers/travel/trending/tv_series/variety_shows; sort=newest/popular/relevance | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, category, category_id, duration_seconds, duration_sec, heat_count, rating, rating_scale, rating_count, like_count, comment_count, collect_count, album_id, album_title, album_url, album_episode_count, image_url, wide_image_url, author_name, author_id, author_avatar_url, author_follower_count, author_video_count, author_location, author_org, posted_at, platform, cast\n- iqiyi / video (视频详情) — params: url | optional: scrape_additional_info | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, category, category_id, duration_seconds, duration_sec, heat_count, rating, rating_scale, rating_count, like_count, comment_count, collect_count, album_id, album_title, album_url, album_episode_count, image_url, wide_image_url, author_name, author_id, author_avatar_url, author_follower_count, author_video_count, author_location, author_org, posted_at, platform, cast\n- iqiyi / album (专辑) — params: keyword | optional: lang, language, region | values: lang=arsa/enus/eses/idid/jajp/kokr/msmy/thth/vivn/zhcn/zhtw; language=ar_sa/en_us/es_es/id_id/ja_jp/ko_kr/ms_my/th_th/vi_vn/zh_cn/zh_tw; region=id/intl/jp/kr/my/ph/sg/th/tw/vn | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, play_url, title, subtitle, type, is_series, year, release_date, duration_seconds, duration_sec, rating, rating_scale, content_rating, episode_count, episode_available_count, image_url, episodes, cast, platform\n- jd / search (关键词搜索) — params: keyword | up to 5 per call | USD 0.001389/call (USD 1.39/1K) | returns: item_id, url, title, short_title, price, currency, sold_count, review_count, good_rate, shop_id, shop_name, shop_url, is_jd_self, promotion, sell_point, category_ids, image_url, platform\n- jd / product_detail (商品详情) — params: item_id | USD 0.001389/call (USD 1.39/1K) | returns: item_id, url, title, price, price_display, price_masked, currency, available, unavailable_reason, shop_id, shop_name, shop_url, category_id, category, stock, stock_state, color, size, weight, image_url, image_urls, is_jd_self, brand, model, original_price, upc, warranty, product_area, is_jd_express, variant_count, variants, platform\n- jd / reviews (评价) — params: item_id | up to 10 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, item_id, text, review_append, rating, rating_scale, posted_at, color, size, useful_count, images, author_name, author_avatar_url, author_is_plus, buy_count, platform | Temporarily unavailable: we are restoring this capability. Until then calls are refused with 503 `unavailable` (error.reason `temporarily_unavailable`) and a Retry-After header, and are not charged.\n- jd / shop (店铺资料) — params: shop_id | up to 24 per call | USD 0.001389/call (USD 1.39/1K) | returns: item_id, url, title, price, currency, shop_id, shop_name, shop_url, image_url, available, platform | Temporarily unavailable: we are restoring this capability. Until then calls are refused with 503 `unavailable` (error.reason `temporarily_unavailable`) and a Retry-After header, and are not charged.\n- jd / product_price (商品价格) — params: item_id | USD 0.001389/call (USD 1.39/1K) | returns: item_id, url, price, currency, available, unavailable_reason, platform | Temporarily unavailable: we are restoring this capability. Until then calls are refused with 503 `unavailable` (error.reason `temporarily_unavailable`) and a Retry-After header, and are not charged.\n- jd / skus (全部 SKU 与价格) — params: item_id | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | 1 call per 1 rows asked | returns: item_id, url, product_id, is_requested, title, properties, color, size, price, currency, on_sale, in_stock, stock_state, stock, purchase_limit, delivery_promise, is_presale, is_government_subsidy, is_billion_subsidy, is_flash_sale, promo_tags, upc, brand, image_url, shop_id, shop_name, is_jd_self, variant_count, platform\n- jd / description_images (商品介绍详情图) — params: item_id | USD 0.001389/call (USD 1.39/1K) | returns: item_id, position, image_url, image_count, platform\n- kuaishou / search (关键词搜索) — params: keyword | up to 100 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, url, text, duration_ms, view_count, like_count, comment_count, share_count, posted_at, author_id, author_name, author_kwai_id, author_url, author_verified, follower_count, video_count, cover_url, avatar_url, transcript, platform\n- kuaishou / user_posts (用户内容) — params: user_id | up to 100 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, url, text, duration_ms, view_count, like_count, comment_count, share_count, posted_at, author_id, author_name, author_kwai_id, author_url, author_verified, follower_count, video_count, cover_url, avatar_url, transcript, platform\n- lemmy / search (关键词搜索) — params: keyword | optional: instance, sort, top_range | values: sort=active/hot/most_comments/new/new_comments/top; top_range=all/day/hour/month/ninemonths/sixhour/sixmonths/threemonths/twelvehour/week/year | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, title, body, url, external_url, community, community_url, instance, author_username, author_url, score, upvote_count, downvote_count, comment_count, thumbnail_url, embed_title, is_nsfw, is_locked, is_featured, posted_at, updated_at, platform\n- lemmy / community (社区资料) — params: community | optional: instance, sort, top_range | values: sort=active/hot/most_comments/new/new_comments/top; top_range=all/day/hour/month/ninemonths/sixhour/sixmonths/threemonths/twelvehour/week/year | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, title, body, url, external_url, community, community_url, instance, author_username, author_url, score, upvote_count, downvote_count, comment_count, thumbnail_url, embed_title, is_nsfw, is_locked, is_featured, posted_at, updated_at, platform\n- lemmy / feed (信息流) — params: — | optional: instance, sort, top_range | values: sort=active/hot/most_comments/new/new_comments/top; top_range=all/day/hour/month/ninemonths/sixhour/sixmonths/threemonths/twelvehour/week/year | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, title, body, url, external_url, community, community_url, instance, author_username, author_url, score, upvote_count, downvote_count, comment_count, thumbnail_url, embed_title, is_nsfw, is_locked, is_featured, posted_at, updated_at, platform\n- lemmy / comments (评论) — params: community | optional: instance, max_comments, sort, top_range | values: sort=active/hot/most_comments/new/new_comments/top; top_range=all/day/hour/month/ninemonths/sixhour/sixmonths/threemonths/twelvehour/week/year | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, text, author_username, author_url, score, upvote_count, downvote_count, depth, parent_comment_id, is_deleted, post_url, post_title, community, posted_at, platform\n- linkedin / search (关键词搜索) — params: keyword | optional: date_range, sort | values: date_range=no_filter/past_1_hour/past_24_hours/past_month/past_week; sort=newest/relevance | up to 50 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, url, text, author_name, author_username, author_headline, author_id, author_url, author_avatar_url, reactions, attachment, like_count, comment_count, share_count, hashtags, is_reshare, posted_at, platform\n- linkedin / profile_search (账号搜索) — params: keyword | optional: location, locations | up to 100 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, username, name, url, headline, location, current_company, current_title, avatar_url, is_premium, is_open_profile, email, about, follower_count, connection_count, is_verified, is_creator, is_influencer, is_top_voice, current_company_url, experience, education, platform\n- linkedin / person_profile (个人职业资料) — params: username | optional: location, locations, name | USD 0.000556/call (USD 0.56/1K) | returns: username, display_name, headline, about, location, current_company, current_company_url, current_company_logo_url, follower_count, connection_count, email, is_verified, is_premium, is_top_voice, is_creator, is_influencer, open_to_work, top_skills, top_education_school, creator_hashtags, creator_website, primary_locale, account_created_at, avatar_url, background_picture_url, url, experience, education, featured, first_name, last_name, country, city, country_code, is_memorialized, platform, emails\n- linkedin / company_profile (公司主页) — params: company | optional: identifier, name | USD 0.000556/call (USD 0.56/1K) | returns: id, name, universal_name, url, description, tagline, website, industries, specialties, employee_count, employee_count_range, student_count, follower_count, founded_year, is_verified, headquarters, phone, logo_url, cover_url, hashtags, job_search_url, crunchbase_url, total_funding_rounds, latest_funding_round, parent_company, acquirer_company, offices, platform\n- linkedin / comments (评论) (async) — params: url | optional: num_comments, num_likes, sort | values: sort=newest/relevance | up to 200 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, text, url, author_name, author_username, author_headline, author_url, like_count, reply_count, is_pinned, is_edited, posted_at, post_url, platform, language\n- linkedin / followers (粉丝数量) — params: username | optional: channel | USD 0.000556/call (USD 0.56/1K) | returns: id, username, url, follower_count, following_count, post_count, like_count, connection_count, precision, platform\n- linkedin / jobs (职位搜索) — params: keyword | optional: location | up to 200 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, url, title, text, company_name, company_url, company_logo, location, salary, employment_type, seniority, applicant_count, posted_at, platform\n- linkedin / employees (员工列表) — params: company | up to 200 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, url, name, headline, location, country, country_code, city, avatar_url, is_premium, is_influencer, open_to_work, company_url, email, phone, is_creator, is_top_voice, is_memorialized, account_created_at, primary_locale, postal_code, platform\n- mastodon / user_posts (用户内容) — params: username | optional: instance | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, text, author_name, author_username, author_url, instance, like_count, reblog_count, comment_count, language, is_reblog, posted_at, platform, media_urls, hashtags\n- mastodon / profile (主页或对象详情) — params: username | optional: instance | USD 0.001389/call (USD 1.39/1K) | returns: username, display_name, handle, instance, url, platform\n- mastodon / hashtag (话题内容) — params: hashtag | optional: instance | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, text, author_name, author_username, author_url, instance, like_count, reblog_count, comment_count, language, is_reblog, posted_at, platform, media_urls, hashtags\n- mastodon / trending (热榜) — params: — | optional: instance | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, text, author_name, author_username, author_url, instance, like_count, reblog_count, comment_count, language, is_reblog, posted_at, platform, media_urls, hashtags\n- mastodon / timeline (时间线) — params: — | optional: instance | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, text, author_name, author_username, author_url, instance, like_count, reblog_count, comment_count, language, is_reblog, posted_at, platform, media_urls, hashtags\n- medium / tag (标签内容) — params: tag | up to 25 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, author_name, author_username, author_url, publication_name, like_count, comment_count, reading_time_minutes, is_members_only, posted_at, image_url, platform, tags\n- medium / user_posts (用户内容) — params: username | optional: url | up to 25 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, author_name, author_username, author_url, publication_name, like_count, comment_count, reading_time_minutes, is_members_only, posted_at, image_url, platform, tags\n- medium / publication (出版物或专栏) — params: publication | optional: url | up to 25 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, author_name, author_username, author_url, publication_name, like_count, comment_count, reading_time_minutes, is_members_only, posted_at, image_url, platform, tags\n- naukri / search (关键词搜索) — params: keyword | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, company_name, location, experience, salary, currency, text, posted_at, email, emails, phone, platform\n- naukri / company_jobs (公司职位) — params: url | optional: date_range, sort | values: date_range=any_time/last_24_hours/last_30_days/last_7_days/last_90_days; sort=newest/relevance | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, company_name, company_url, location, experience, salary, currency, employment_type, work_mode, job_role, industry, functional_area, vacancy, apply_count, view_count, skills, text, posted_at, email, emails, phone, platform\n- naver / search (关键词搜索) — params: keyword | optional: content_type, sort | values: content_type=blog_only/both_blog_cafe/cafe_only; sort=newest/relevance | up to 20 per call | USD 0.001389/call (USD 1.39/1K) | returns: source, title, url, text, author_name, author_url, cafe_name, category, like_count, comment_count, posted_at, has_video, is_sponsored, platform, tags, image_urls, mentioned_places\n- naver / post (单条内容) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: source, title, url, text, author_name, author_url, cafe_name, category, like_count, comment_count, posted_at, has_video, is_sponsored, platform, tags, image_urls, mentioned_places\n- naver / comments (评论) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: author_name, text, posted_at, is_reply, platform, post_url | Temporarily unavailable: we are restoring this capability. Until then calls are refused with 503 `unavailable` (error.reason `temporarily_unavailable`) and a Retry-After header, and are not charged.\n- naver / reviews (评价) — params: url | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, place_id, place_name, text, rating, rating_scale, visited_at, posted_at, visit_count, view_count, item_name, origin_type, language, owner_reply, author_id, author_name, author_review_count, place_total_reviews, place_average_rating, platform\n- netease_music / toplist (榜单) — params: — | up to 100 per call | USD 0.000556/call (USD 0.56/1K) | returns: rank, track_id, track_name, track_alias, duration_ms, artists, artist_ids, album_id, album_name, album_cover_url, published_at, is_explicit, popularity_score, track_url, playlist_id, playlist_name, playlist_type, playlist_cover_url, playlist_track_count, playlist_play_count, playlist_subscribed_count, playlist_updated_at, snapshotted_at, platform\n- netease_music / playlist (播放列表) — params: playlist_id | up to 100 per call | USD 0.000556/call (USD 0.56/1K) | returns: rank, track_id, track_name, track_alias, duration_ms, artists, artist_ids, album_id, album_name, album_cover_url, published_at, is_explicit, popularity_score, track_url, playlist_id, playlist_name, playlist_type, playlist_cover_url, playlist_track_count, playlist_play_count, playlist_subscribed_count, playlist_updated_at, snapshotted_at, platform\n- netease_music / comments (评论) — params: song_id | optional: sort | USD 0.000556/call (USD 0.56/1K) | returns: id, song_id, song_name, url, text, like_count, reply_count, is_hot, is_reply, parent_comment_id, author_name, author_avatar_url, posted_at, platform\n- nextdoor / profile (主页或对象详情) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: name, page_type, url, description, tagline, state, country_code, lat, lng, residents_count, average_age, average_income, homeowner_pct, affordability_score, friendliness_score, neighborhood_count, business_directory_count, local_group_count, classifieds_count, events_count, safety_post_count, trending_post_count, photo_video_post_count, faq_count, faqs, image_url, access_status, platform\n- nextdoor / directory (目录与社区发现) — params: url | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: name, url, kind, description, member_count, image_url, area, platform\n- odysee / search (关键词搜索) — params: keyword | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, title, description, channel_name, channel_id, channel_url, url, thumbnail_url, duration_seconds, duration_sec, view_count, like_count, published_at, media_type, languages, tags, platform\n- odysee / trending (热榜) — params: — | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, title, description, channel_name, channel_id, channel_url, url, thumbnail_url, duration_seconds, duration_sec, view_count, like_count, published_at, media_type, languages, tags, platform\n- odysee / user_posts (用户内容) — params: username | optional: sort | values: sort=newest/popular | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, title, description, channel_name, channel_id, channel_url, url, thumbnail_url, duration_seconds, duration_sec, view_count, like_count, published_at, media_type, languages, tags, platform\n- odysee / tag (标签内容) — params: tag | optional: sort | values: sort=newest/popular | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, title, description, channel_name, channel_id, channel_url, url, thumbnail_url, duration_seconds, duration_sec, view_count, like_count, published_at, media_type, languages, tags, platform\n- patreon / search (关键词搜索) — params: keyword | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: name, vanity, url, tagline, patron_count, post_count, rank, category, days_running, published_at, avatar_url, platform\n- patreon / explore (创作者发现) — params: category | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: name, vanity, url, tagline, patron_count, post_count, rank, category, days_running, published_at, avatar_url, platform\n- patreon / profile (主页或对象详情) — params: username | USD 0.001389/call (USD 1.39/1K) | returns: id, name, vanity, url, creation_name, one_liner, summary, currency, patron_count, paid_member_count, post_count, pay_per, is_monthly, is_nsfw, offers_free_membership, offers_paid_membership, published_at, pledge_url, avatar_url, cover_url, main_video_url, platform, tiers, tier_count, socials\n- patreon / user_posts (用户内容) — params: username | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, title, text, url, post_type, like_count, comment_count, is_public, author_vanity, thumbnail_url, posted_at, platform\n- pinterest / search (关键词搜索) — params: keyword | optional: content_type | values: content_type=all_pins_visual_posts/videos_video_pins | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, image_url, reaction_count, source_domain, dominant_color, posted_at, author_username, author_name, author_follower_count, board_name, platform\n- pinterest / profile (主页或对象详情) — params: username | USD 0.001389/call (USD 1.39/1K) | returns: user_id, username, name, bio, avatar_url, follower_count, following_count, pin_count, board_count, video_count, website, is_verified, is_private, created_at, platform\n- pinterest / user_posts (用户内容) — params: username | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, image_url, video_url, media_type, external_link, source_domain, reaction_count, repin_count, comment_count, share_count, dominant_color, alt_text, posted_at, author_username, author_name, board_name, price, platform\n- pinterest / pin (单条 Pin) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, image_url, video_url, media_type, external_link, source_domain, reaction_count, repin_count, comment_count, share_count, dominant_color, alt_text, posted_at, author_username, author_name, board_name, price, platform\n- pinterest / boards (画板列表) — params: username | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, name, url, description, pin_count, section_count, follower_count, cover_image_url, is_collaborative, privacy, owner_username, owner_name, created_at, platform\n- pinterest / board_pins (画板内容) — params: board_id | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, image_url, video_url, media_type, external_link, source_domain, reaction_count, repin_count, comment_count, share_count, dominant_color, alt_text, posted_at, author_username, author_name, board_name, price, platform\n- pinterest / board_detail (画板详情) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: id, name, url, description, pin_count, section_count, follower_count, cover_image_url, is_collaborative, privacy, owner_username, owner_name, created_at, platform\n- producthunt / trending (热榜) — params: — | optional: days | up to 40 per call | USD 0.001389/call (USD 1.39/1K) | returns: name, tagline, description, url, rank, vote_count, comment_count, topics, maker, image_url, posted_at, platform\n- producthunt / profile (主页或对象详情) — params: url | USD 0.002778/call (USD 2.78/1K) | returns: id, slug, name, tagline, description, url, website, vote_count, comment_count, review_count, rating, rating_scale, follower_count, daily_rank, weekly_rank, is_top_product, topics, posted_at, platform, latest_launch_name, latest_launch_at, emails, contact_email, contact_website\n- producthunt / comments (评论) — params: url | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, text, vote_count, is_pinned, author_name, author_username, author_headline, author_is_verified, product_name, product_url, posted_at, platform\n- producthunt / reviews (评价) — params: url | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, rating, rating_scale, ease_of_use_rating, value_rating, text, positive, negative, pros, cons, vote_count, review_type, author_name, author_username, author_headline, product_name, product_url, posted_at, platform\n- quora / search (关键词搜索) — params: keyword | optional: content_type, date_range | values: content_type=all_types_mixed_results/answer_answer_records/post_space_posts/profile_user_profiles/question_question_pages/space_quora_spaces/topic_topic_pages; date_range=all_time_broadest_discovery/past_day_last_24_hours/past_hour_very_recent_results/past_month_last_30_days/past_week_last_7_days/past_year_last_12_months | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: type, url, platform, title, posted_at, answer_count, comment_count, follower_count, is_locked, is_sensitive, text, author_name, author_url, author_credential, upvote_count, share_count, view_count, question_id, question_url, space_name, name, user_id, credential, avatar_url, topic_id, photo_url\n- quora / questions (问题列表) — params: keyword | optional: date_range | values: date_range=all_time_broadest_discovery/past_day_last_24_hours/past_hour_very_recent_results/past_month_last_30_days/past_week_last_7_days/past_year_last_12_months | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: type, url, platform, title, posted_at, answer_count, comment_count, follower_count, is_locked, is_sensitive, text, author_name, author_url, author_credential, upvote_count, share_count, view_count, question_id, question_url, space_name, name, user_id, credential, avatar_url, topic_id, photo_url\n- quora / answers (回答列表) — params: keyword | optional: date_range | values: date_range=all_time_broadest_discovery/past_day_last_24_hours/past_hour_very_recent_results/past_month_last_30_days/past_week_last_7_days/past_year_last_12_months | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: type, url, platform, title, posted_at, answer_count, comment_count, follower_count, is_locked, is_sensitive, text, author_name, author_url, author_credential, upvote_count, share_count, view_count, question_id, question_url, space_name, name, user_id, credential, avatar_url, topic_id, photo_url\n- quora / posts (帖子列表) — params: keyword | optional: date_range | values: date_range=all_time_broadest_discovery/past_day_last_24_hours/past_hour_very_recent_results/past_month_last_30_days/past_week_last_7_days/past_year_last_12_months | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: type, url, platform, title, posted_at, answer_count, comment_count, follower_count, is_locked, is_sensitive, text, author_name, author_url, author_credential, upvote_count, share_count, view_count, question_id, question_url, space_name, name, user_id, credential, avatar_url, topic_id, photo_url\n- quora / profiles (用户资料列表) — params: keyword | optional: date_range | values: date_range=all_time_broadest_discovery/past_day_last_24_hours/past_hour_very_recent_results/past_month_last_30_days/past_week_last_7_days/past_year_last_12_months | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: type, url, platform, title, posted_at, answer_count, comment_count, follower_count, is_locked, is_sensitive, text, author_name, author_url, author_credential, upvote_count, share_count, view_count, question_id, question_url, space_name, name, user_id, credential, avatar_url, topic_id, photo_url\n- quora / topics (话题列表) — params: keyword | optional: date_range | values: date_range=all_time_broadest_discovery/past_day_last_24_hours/past_hour_very_recent_results/past_month_last_30_days/past_week_last_7_days/past_year_last_12_months | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: type, url, platform, title, posted_at, answer_count, comment_count, follower_count, is_locked, is_sensitive, text, author_name, author_url, author_credential, upvote_count, share_count, view_count, question_id, question_url, space_name, name, user_id, credential, avatar_url, topic_id, photo_url\n- realtor / search (关键词搜索) — params: keyword | optional: agent_type, min_rating | values: agent_type=both/buyer/seller; min_rating=0/1/2/3/4/5 | up to 500 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, name, url, title, text, office_name, broker_name, city, state, postal_code, country, license_no, rating, rating_scale, review_count, active_listings, recently_sold, price_min, price_max, specialties, languages, served_areas, emails, phones, image_url, platform | Temporarily unavailable: we are restoring this capability. Until then calls are refused with 503 `unavailable` (error.reason `temporarily_unavailable`) and a Retry-After header, and are not charged.\n- realtor / property_search (房源搜索) — params: keyword | optional: baths_min, beds_min, city, max_price, min_price, sort, status | values: sort=bedrooms_desc/lot_size_desc/newest/photo_count_desc/price_desc/recently_sold/recently_updated/sold_price_desc | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, status, price, sold_price, sold_at, listed_at, property_type, beds, baths, area_sqft, lot_sqft, year_built, address, city, state, postal_code, county, lat, lng, image_url, photo_count, is_new_listing, is_price_reduced, is_foreclosure, advertiser_emails, advertiser_phones, platform\n- realtor / property_detail (房源详情) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, status, price, sold_price, sold_at, updated_at, property_type, beds, baths, area_sqft, year_built, address, city, state, postal_code, platform\n- reddit / search (关键词搜索) — params: keyword | optional: sort | values: sort=newest/popular/relevance/rising/top | up to 50 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, url, title, text, author_username, community, like_count, comment_count, posted_at, platform\n- reddit / subreddit_posts (社区帖子) — params: subreddit | optional: date_range, sort | values: date_range=all_time/past_day/past_hour/past_month/past_week/past_year; sort=newest/popular/relevance/rising/top | up to 100 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, url, title, text, author_username, community, like_count, comment_count, posted_at, platform\n- reddit / post_detail (内容详情) — params: url | USD 0.000556/call (USD 0.56/1K) | returns: id, url, title, text, author_username, community, like_count, comment_count, posted_at, platform\n- reddit / comments (评论) — params: url | up to 100 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, text, author_username, like_count, community, url, posted_at, platform\n- reddit / user_posts (用户内容) — params: username | optional: date_range, sort | values: date_range=all_time/past_day/past_hour/past_month/past_week/past_year; sort=newest/popular/relevance/rising/top | up to 50 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, url, title, text, author_username, community, like_count, comment_count, posted_at, platform\n- rumble / search (关键词搜索) — params: keyword | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, author_name, author_url, author_followers, author_verified, view_count, like_count, dislike_count, vote_score, comment_count, duration_seconds, duration_sec, thumbnail_url, is_short, is_live, is_monetized, revenue, watching_now, tags, posted_at, platform\n- rumble / profile (主页或对象详情) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: channel_id, username, name, url, bio, avatar_url, banner_url, follower_count, subscriber_count, video_count, view_count, is_verified, badge, twitter_url, joined_at, platform\n- rumble / user_posts (用户内容) — params: url | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, author_name, author_url, author_followers, author_verified, view_count, like_count, dislike_count, vote_score, comment_count, duration_seconds, duration_sec, thumbnail_url, is_short, is_live, is_monetized, revenue, watching_now, tags, posted_at, platform\n- rumble / video (视频详情) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, author_name, author_url, author_followers, author_verified, view_count, like_count, dislike_count, vote_score, comment_count, duration_seconds, duration_sec, thumbnail_url, is_short, is_live, is_monetized, revenue, watching_now, tags, posted_at, category, embed_url, platform\n- rumble / comments (评论) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: id, text, author_name, author_username, author_verified, score, like_count, dislike_count, is_pinned, is_reply, reply_to_id, posted_at, platform\n- rumble / trending (热榜) — params: — | optional: date, period, sort | values: date=all/this-month/this-week/this-year/today; period=all/this-month/this-week/this-year/today; sort=date/duration/rumbles/views | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, author_name, author_url, author_followers, author_verified, view_count, like_count, dislike_count, vote_score, comment_count, duration_seconds, duration_sec, thumbnail_url, is_short, is_live, is_monetized, revenue, watching_now, tags, posted_at, platform\n- seek / search (关键词搜索) — params: keyword | optional: country, location, sort | values: sort=newest/relevance; country=australia/hongkong/indonesia/malaysia/new zealand/philippines/singapore/thailand | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, company_name, location, posted_at, employment_type, is_remote, platform, salary, text, category, applicant_count, is_verified, work_arrangement, company_industry, company_size, apply_url, salary_min, salary_max, company_rating, company_review_count, email, emails, phone\n- shopee / search (关键词搜索) — params: keyword | optional: country, max_price, min_price, sort | values: country=br/cl/co/id/mx/my/ph/sg/th/tw/vn; sort=newest/popular/price_asc/price_desc/relevance | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: shop_id, item_id, name, url, image_url, price, original_price, discount_pct, currency, rating, rating_scale, rating_count, sold_count, location, is_mall, platform\n- shopee / profile (主页或对象详情) — params: url | optional: country | values: country=br/cl/co/id/mx/my/ph/sg/th/tw/vn | USD 0.001389/call (USD 1.39/1K) | returns: shop_id, item_id, name, url, description, price, price_min, price_max, original_price, discount_pct, currency, rating, rating_scale, rating_count, sold_count, stock, liked_count, view_count, brand, is_pre_order, has_video, platform, images, shop\n- shopee / shop (店铺资料) — params: shop | optional: country | values: country=br/cl/co/id/mx/my/ph/sg/th/tw/vn | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: shop_id, item_id, name, url, image_url, price, original_price, discount_pct, currency, rating, rating_scale, rating_count, sold_count, location, is_mall, platform\n- shopee / product_detail (商品详情) — params: url | optional: country | values: country=br/id/mx/my/ph/sg/th/vn | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, text, price, original_price, currency, discount, stock, sold_count, rating, rating_scale, review_count, shop_name, shop_location, variants, image_url, platform | Temporarily unavailable: we are restoring this capability. Until then calls are refused with 503 `unavailable` (error.reason `temporarily_unavailable`) and a Retry-After header, and are not charged.\n- similarweb / search (关键词搜索) — params: keyword | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, text, category, global_rank, country_rank, category_rank, country, monthly_visits, bounce_rate, pages_per_visit, avg_visit_duration, company_name, company_founded, company_employees_min, company_employees_max, company_hq_country, company_hq_city, top_countries, top_keywords, traffic_sources, top_referrals, social_distribution, competitors, snapshot_date, email, emails, phone, platform\n- similarweb / competitors (竞品网站) — params: keyword | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, relation, category, category_rank, global_rank, country_rank, affinity, platform, source_domain\n- similarweb / audience (受众画像) — params: keyword | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, male_share, female_share, age_distribution, top_interested_websites, top_interested_topics, top_interested_categories, technologies, organic_traffic_share, paid_traffic_share, snapshot_date, platform\n- snapchat / profile (主页或对象详情) — params: username | USD 0.001389/call (USD 1.39/1K) | returns: business_profile_id, username, display_name, bio, profile_type, category, subcategory, subscriber_count, is_verified, website, address, has_story, lens_count, highlight_count, spotlight_count, url, avatar_url, snapcode_url, hero_image_url, created_at, platform, related_accounts\n- snapchat / stories (Stories 内容) — params: username | USD 0.001389/call (USD 1.39/1K) | returns: id, story_id, story_title, media_url, thumbnail_url, posted_at, username, author_name, author_url, platform\n- snapchat / user_posts (用户内容) — params: username | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, summary, caption, media_url, thumbnail_url, duration_ms, width, height, view_count, share_count, comment_count, boost_count, recommend_count, posted_at, username, author_name, author_url, platform\n- snapchat / video (视频详情) — params: url | optional: spotlight_url | USD 0.001389/call (USD 1.39/1K) | returns: id, url, text, hashtags, view_count, share_count, duration_ms, posted_at, thumbnail_url, media_url, username, author_name, author_url, author_avatar_url, platform\n- soundcloud / search (关键词搜索) — params: keyword | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, genre, tags, duration_sec, duration_seconds, artist_name, artist_url, artist_avatar_url, artist_follower_count, artist_verified, play_count, like_count, comment_count, repost_count, download_count, artwork_url, license, posted_at, platform\n- soundcloud / search_users (用户搜索) — params: keyword | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, username, name, url, bio, avatar_url, city, country, follower_count, following_count, track_count, playlist_count, like_count, is_verified, is_pro, created_at, platform\n- soundcloud / search_playlists (播放列表搜索) — params: keyword | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, title, url, text, genre, track_count, duration_sec, duration_seconds, like_count, repost_count, is_album, artwork_url, artist_name, artist_url, artist_verified, posted_at, platform\n- soundcloud / track (单曲详情) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, genre, tags, duration_sec, duration_seconds, artist_name, artist_url, artist_avatar_url, artist_follower_count, artist_verified, play_count, like_count, comment_count, repost_count, download_count, artwork_url, license, posted_at, platform\n- soundcloud / artist (艺人或创作者资料) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: id, username, name, url, bio, avatar_url, city, country, follower_count, following_count, track_count, playlist_count, like_count, is_verified, is_pro, created_at, platform\n- soundcloud / playlist (播放列表) — params: url | optional: keyword, query | USD 0.001389/call (USD 1.39/1K) | returns: id, title, url, text, genre, track_count, duration_sec, duration_seconds, like_count, repost_count, is_album, artwork_url, artist_name, artist_url, artist_verified, posted_at, platform\n- spotify / profile (主页或对象详情) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, type, release_date, label, artists, image_url, track_count, tracks, platform\n- spotify / search (关键词搜索) — params: keyword | optional: content_type | values: content_type=albums/artists/playlists/tracks | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, type, name, text, artists, album_name, owner_name, publisher, image_url, duration_ms, play_count, follower_count, monthly_listener_count, track_count, episode_count, release_date, is_explicit, preview_url, rank, platform\n- spotify / artist (艺人或创作者资料) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, bio, monthly_listener_count, follower_count, world_rank, genres, image_url, header_image_url, album_count, single_count, compilation_count, top_cities, top_tracks, related_artists, platform\n- spotify / track (单曲详情) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, artists, album_name, duration_ms, play_count, track_number, disc_number, is_explicit, release_date, preview_url, image_url, added_at, platform, album_id, album_type, label, content_rating\n- spotify / album (专辑) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, album_type, artists, release_date, label, copyright, track_count, image_url, tracks, platform\n- spotify / playlist (播放列表) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, text, owner_name, save_count, follower_count, track_count, image_url, tracks, platform\n- spotify / podcast (播客) — params: keyword | optional: content_type | values: content_type=podcast_episodes_individual_episodes/podcasts_shows | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, type, name, text, artists, album_name, owner_name, publisher, image_url, duration_ms, play_count, follower_count, monthly_listener_count, track_count, episode_count, release_date, is_explicit, preview_url, rank, platform\n- stepstone / search (关键词搜索) — params: keyword | optional: domain, location | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, company_name, company_url, company_size, company_website, company_industries, location, work_arrangement, employment_type, posted_at, text, email, emails, phone, platform, is_remote, salary, postal_code\n- substack / search (关键词搜索) — params: keyword | up to 30 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, handle, name, url, custom_domain, bio, language, subscriber_count, payments_enabled, avatar_url, cover_url, platform, author_name, author_username, top_posts\n- substack / publication (出版物或专栏) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: id, handle, name, url, custom_domain, bio, language, subscriber_count, payments_enabled, avatar_url, cover_url, platform, author_name, author_username, top_posts\n- substack / publication_posts (出版物文章) — params: url | optional: content_type, since, until | values: content_type=all_types/newsletter_posts_only/podcast_episodes_only/threads_only | up to 30 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, subtitle, text, author_name, author_username, publication_name, publication_handle, publication_url, like_count, comment_count, repost_count, word_count, reading_time_minutes, post_type, audience, is_paid, podcast_url, image_url, posted_at, updated_at, tags, platform\n- substack / post (单条内容) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, subtitle, text, author_name, author_username, publication_name, publication_handle, publication_url, like_count, comment_count, repost_count, word_count, reading_time_minutes, post_type, audience, is_paid, podcast_url, image_url, posted_at, updated_at, tags, platform\n- substack / comments (评论) — params: url | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, text, author_name, author_username, like_count, reply_count, reply_to_id, is_reply, is_pinned, is_author, posted_at, platform\n- substack / profile (主页或对象详情) — params: username | USD 0.001389/call (USD 1.39/1K) | returns: user_id, username, display_name, bio, avatar_url, twitter_username, platform, publications\n- substack / notes (文章与笔记列表) — params: username | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, kind, text, author_username, author_name, like_count, posted_at, platform, restacked_post, attachment_urls\n- taobao / search (关键词搜索) — params: keyword | optional: max_price, min_price, sort, tmall_only | values: sort=popular/price_desc/relevance | up to 20 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, price, currency, sold_count, rating, rating_scale, location, shop_name, image_url, stock, shop_id, sold_text, original_price, coupon_price, discount_type, is_tmall, brand, category_id, seller_credit_level, seller_positive_rate, shop_score_description, shop_score_service, shop_score_delivery, subtitle, search_rank, free_shipping, selling_points, review_tags, platform\n- taobao / product_detail (商品详情) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, brand, price, original_price, currency, stock, sold_count, category_id, location, is_tmall, shop_name, shop_id, shipping_fee, ems_fee, express_fee, skus, sku_count, spec_values, props_images, attributes, main_image_url, description_images, description_html, video_url, coupon_price, price_usd, total_price, suggestive_price, has_discount, is_promotion, promo_type, is_virtual, brand_id, root_category_id, category_path, weight, size, favorite_count, fans_count, min_order_quantity, shipping_to, listed_at, modified_at, delist_at, images, category_name, description, keywords, titleOriginal, has_cn_title, shop_score_description, shop_score_service, shop_score_delivery, free_shipping, promotion_price, discount_price, discount_type, price_note, has_price_range, payment_methods, seller_id, seller_credit_level, seller_type, seller_type_label, selling_points, shop_logo_url, shop_url, shop_item_count, shop_new_item_count, shop_opened_at, review_tags, review_count, positive_rate, seven_day_return, platform\n- taobao / shop (店铺资料) — params: shop | optional: seller, sort, user_id | values: sort=best_selling/highest_price/lowest_price/new/newly_listed/popular/price_asc/price_desc/sales | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, price, currency, category_id, sold_count_30d, comment_count, free_shipping, shop_name, shop_id, seller_id, rating, rating_scale, image_url, platform | Temporarily unavailable: we are restoring this capability. Until then calls are refused with 503 `unavailable` (error.reason `temporarily_unavailable`) and a Retry-After header, and are not charged.\n- taobao / reviews (评价) — params: url | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, text, rating, rating_scale, posted_at, sku, buy_count, useful_count, author_name, author_avatar_url, images, review_append, platform, seller_reply\n- taobao / questions (问题列表) — params: url | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, text, answer_count, posted_at, answers, platform | Temporarily unavailable: we are restoring this capability. Until then calls are refused with 503 `unavailable` (error.reason `temporarily_unavailable`) and a Retry-After header, and are not charged.\n- telegram / channel_posts (频道帖子) — params: username | up to 200 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, url, channel_username, channel_title, text, view_count, posted_at, media_type, media_url, author, is_forwarded, forwarded_from, reply_to_url, platform, link_preview_url, reactions\n- telegram / profile (主页或对象详情) — params: username | USD 0.000556/call (USD 0.56/1K) | returns: username, name, bio, subscriber_count, photo_count, video_count, link_count, is_verified, avatar_url, url, platform\n- telegram / search (关键词搜索) — params: keyword | optional: since, until | up to 100 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, url, text, posted_at, view_count, media_url, reactions, channel_username, channel_title, channel_type, channel_subscriber_count, channel_description, platform\n- telegram / group (群组资料) — params: username | USD 0.000556/call (USD 0.56/1K) | returns: id, type, username, url, title, name, description, member_count, online_count, created_at, is_verified, is_scam, is_fake, is_forum, is_restricted, admin_bots, platform\n- telegram / members (成员列表) — params: username | up to 5000 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, username, url, name, type, is_verified, is_premium, is_scam, is_fake, last_seen_at, phone, platform\n- temu / search (关键词搜索) — params: keyword | optional: sort | values: sort=newest/popular/price_asc/price_desc/relevance | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: product_id, title, url, price, original_price, discount_pct, currency, rating, rating_scale, review_count, sold_count, sold_text, shop_id, image_url, platform\n- temu / profile (主页或对象详情) — params: url | optional: product_url | USD 0.001389/call (USD 1.39/1K) | returns: product_id, title, url, price, original_price, discount_pct, currency, rating, rating_scale, review_count, sold_count, sold_text, shop_name, category, keywords, description, shipping, availability, in_stock, free_shipping, is_trending, image_url, images, video_url, specifications, options, platform\n- thomasnet / search (关键词搜索) — params: keyword | optional: area | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, text, address, email, emails, phone, annual_sales, employees_count, brands, categories, location_types, is_claimed, is_multi_location, image_url, platform\n- thomasnet / company (公司资料) — params: company | optional: area | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, text, address, email, emails, phone, annual_sales, employees_count, brands, categories, location_types, is_claimed, is_multi_location, image_url, platform\n- threads / search (关键词搜索) — params: keyword | up to 50 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, url, text, author_name, author_username, author_id, like_count, comment_count, posted_at, platform\n- threads / profile (主页或对象详情) — params: username | USD 0.000556/call (USD 0.56/1K) | returns: user_id, username, display_name, bio, follower_count, is_verified, is_private, url, avatar_url, platform, external_url\n- threads / user_posts (用户内容) — params: username | up to 50 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, code, url, text, author_username, author_name, author_is_verified, like_count, comment_count, repost_count, quote_count, share_count, view_count, posted_at, platform, media_type, hashtags, mentions\n- threads / post_detail (内容详情) — params: url | USD 0.000556/call (USD 0.56/1K) | returns: id, code, url, text, author_username, author_name, author_is_verified, like_count, comment_count, repost_count, quote_count, share_count, view_count, posted_at, is_paid_partnership, platform, media_url, hashtags\n- threads / comments (评论) — params: url | USD 0.000556/call (USD 0.56/1K) | returns: id, url, text, author_username, author_name, author_is_verified, like_count, comment_count, reply_to, posted_at, platform\n- threads / discover_profiles (账号发现) (async) — params: keyword | optional: since, until | up to 50 per call | USD 0.000556/call (USD 0.56/1K) | returns: username, display_name, bio, follower_count, is_verified, url, avatar_url, platform, emails, phones, external_links\n- threads / followers (粉丝数量) — params: username | optional: channel | USD 0.000556/call (USD 0.56/1K) | returns: id, username, url, follower_count, following_count, post_count, like_count, connection_count, precision, platform\n- tiktok / search (关键词搜索) — params: keyword | optional: content_type | values: content_type=profile/top/video | up to 200 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, url, text, author_name, author_username, like_count, comment_count, share_count, view_count, posted_at, platform\n- tiktok / profile (主页或对象详情) — params: username | USD 0.000556/call (USD 0.56/1K) | returns: user_id, username, display_name, bio, url, external_url, follower_count, following_count, like_count, video_count, friend_count, is_verified, is_private, avatar_url, created_at, platform\n- tiktok / user_videos (用户视频) — params: username | optional: min_likes, sort, until | values: sort=newest/oldest/popular | up to 50 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, url, text, author_name, author_username, like_count, comment_count, share_count, view_count, posted_at, platform\n- tiktok / video (视频详情) — params: url | USD 0.000556/call (USD 0.56/1K) | returns: id, url, text, author_name, author_username, like_count, comment_count, share_count, view_count, posted_at, platform\n- tiktok / comments (评论) — params: url | up to 200 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, text, author_username, author_id, like_count, reply_count, reply_to_id, is_reply, liked_by_author, pinned_by_author, posted_at, platform\n- tiktok / hashtag (话题内容) — params: hashtag | up to 30 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, url, text, author_name, author_username, like_count, comment_count, share_count, view_count, posted_at, platform\n- tiktok / followers (粉丝数量) — params: username | optional: channel | USD 0.000556/call (USD 0.56/1K) | returns: id, username, url, follower_count, following_count, post_count, like_count, connection_count, precision, platform\n- tiktok / transcript (视频文稿) — params: url | USD 0.000556/call (USD 0.56/1K) | returns: id, url, text, segments, has_transcript, platform\n- tiktok / shop_search (电商商品搜索) — params: keyword | optional: country, page | up to 100 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, url, name, price, original_price, currency, sold_count, rating, rating_scale, review_count, category, shop_name, image_url, platform\n- tiktok / shop_creator (带货达人) — params: username | optional: country | USD 0.000556/call (USD 0.56/1K) | returns: id, username, url, name, text, avatar_url, country, categories, follower_count, video_count, product_count, sold_count, avg_views, platform\n- toutiao / article (文章详情) — params: url | USD 0.000556/call (USD 0.56/1K) | returns: id, url, type, title, text, content_text, cover, read_count, play_count, like_count, comment_count, share_count, source, author_name, author_id, author_verified, author_auth_info, region, posted_at, platform, duration_sec, duration_seconds, image_urls\n- toutiao / profile (主页或对象详情) — params: user_id | USD 0.000556/call (USD 0.56/1K) | returns: user_id, nickname, bio, url, avatar_url, is_verified, verify_reason, platform\n- toutiao / user_posts (用户内容) — params: user_id | optional: tab | up to 100 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, url, type, title, text, content_text, cover, read_count, play_count, like_count, comment_count, share_count, source, author_name, author_id, author_verified, author_auth_info, region, posted_at, platform, duration_sec, duration_seconds, image_urls\n- toutiao / profile_search (账号搜索) — params: user_id, keyword | up to 100 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, url, type, title, text, content_text, cover, read_count, play_count, like_count, comment_count, share_count, source, author_name, author_id, author_verified, author_auth_info, region, posted_at, platform, duration_sec, duration_seconds, image_urls\n- tripadvisor / search (关键词搜索) — params: keyword | optional: content_type, currency, lang | values: content_type=from_everyone/from_management/from_travelers; currency=aed/afn/all/amd/ars/aud/azn/bam/bdt/bgn/bhd/bif/bnd/bob/brl/bwp/byn/bzd/cad/cdf/chf/clp/cny/cop/crc/cve/czk/djf/dkk/dop/dzd/eek/egp/ern/etb/eur/gbp/gel/ghs/gnf/gtq/hkd/hnl/hrk/huf/idr/ils/inr/iqd/irr/isk/jmd/jod/jpy/kes/khr/kmf/krw/kwd/kzt/lbp/lkr/ltl/lvl/lyd/mad/mdl/mga/mkd/mmk/mop/mur/mxn/myr/mzn/nad/ngn/nio/nok/npr/nzd/omr/pab/pen/php/pkr/pln/pyg/qar/ron/rsd/rub/rwf/sar/sdg/sek/sgd/sos/syp/thb/tnd/top/try/ttd/twd/tzs/uah/ugx/usd/uyu/uzs/vef/vnd/xaf/xof/yer/zar/zmk/zwl; lang=aa/ab/ae/af/ak/am/an/ar/as/av/ay/az/ba/be/bg/bh/bi/bm/bn/bo/br/bs/ca/ce/ch/co/cr/cs/cu/cv/cy/da/de/dv/ee/el/en/eo/es/et/eu/fa/ff/fi/fj/fo/fr/fy/ga/gd/gl/gn/gu/gv/ha/he/hi/ho/hr/ht/hu/hy/hz/ia/id/ie/ig/ii/ik/io/is/it/iu/iw/ja/jv/ka/kg/ki/kj/kk/kl/km/kn/ko/kr/ks/ku/kv/kw/ky/la/lb/lg/li/ln/lo/lt/lu/lv/mg/mh/mi/mk/ml/mn/mr/ms/mt/my/na/nb/nd/ne/ng/nl/nn/no/nr/nv/ny/oc/oj/om/or/os/pa/pi/pl/ps/pt/qu/rm/rn/ro/ru/rw/sa/sc/sd/se/sg/si/sk/sl/sm/sn/so/sq/sr/ss/st/su/sv/sw/ta/te/tg/th/ti/tk/tl/tn/to/tr/ts/tt/tw/ty/ug/uk/ur/uz/ve/vi/vo/wa/wo/xh/yi/yo/za/zh | up to 30 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, name, category, url, text, rating, rating_scale, review_count, price_level, ranking, address, city, country, location, phone, email, website, latitude, longitude, image_url, platform, cuisines\n- tripadvisor / profile (主页或对象详情) — params: url | optional: content_type, currency, lang | values: content_type=from_everyone/from_management/from_travelers; currency=aed/afn/all/amd/ars/aud/azn/bam/bdt/bgn/bhd/bif/bnd/bob/brl/bwp/byn/bzd/cad/cdf/chf/clp/cny/cop/crc/cve/czk/djf/dkk/dop/dzd/eek/egp/ern/etb/eur/gbp/gel/ghs/gnf/gtq/hkd/hnl/hrk/huf/idr/ils/inr/iqd/irr/isk/jmd/jod/jpy/kes/khr/kmf/krw/kwd/kzt/lbp/lkr/ltl/lvl/lyd/mad/mdl/mga/mkd/mmk/mop/mur/mxn/myr/mzn/nad/ngn/nio/nok/npr/nzd/omr/pab/pen/php/pkr/pln/pyg/qar/ron/rsd/rub/rwf/sar/sdg/sek/sgd/sos/syp/thb/tnd/top/try/ttd/twd/tzs/uah/ugx/usd/uyu/uzs/vef/vnd/xaf/xof/yer/zar/zmk/zwl; lang=aa/ab/ae/af/ak/am/an/ar/as/av/ay/az/ba/be/bg/bh/bi/bm/bn/bo/br/bs/ca/ce/ch/co/cr/cs/cu/cv/cy/da/de/dv/ee/el/en/eo/es/et/eu/fa/ff/fi/fj/fo/fr/fy/ga/gd/gl/gn/gu/gv/ha/he/hi/ho/hr/ht/hu/hy/hz/ia/id/ie/ig/ii/ik/io/is/it/iu/iw/ja/jv/ka/kg/ki/kj/kk/kl/km/kn/ko/kr/ks/ku/kv/kw/ky/la/lb/lg/li/ln/lo/lt/lu/lv/mg/mh/mi/mk/ml/mn/mr/ms/mt/my/na/nb/nd/ne/ng/nl/nn/no/nr/nv/ny/oc/oj/om/or/os/pa/pi/pl/ps/pt/qu/rm/rn/ro/ru/rw/sa/sc/sd/se/sg/si/sk/sl/sm/sn/so/sq/sr/ss/st/su/sv/sw/ta/te/tg/th/ti/tk/tl/tn/to/tr/ts/tt/tw/ty/ug/uk/ur/uz/ve/vi/vo/wa/wo/xh/yi/yo/za/zh | USD 0.001389/call (USD 1.39/1K) | returns: id, name, category, url, text, rating, rating_scale, review_count, price_level, ranking, address, city, country, location, phone, email, website, latitude, longitude, image_url, platform, cuisines\n- tripadvisor / reviews (评价) — params: url | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, rating, rating_scale, like_count, author_name, author_username, author_location, author_contributions, trip_type, trip_date, posted_at, language, platform, owner_response, image_urls\n- tripadvisor / restaurants (餐厅) — params: keyword | optional: content_type, currency, lang | values: content_type=from_everyone/from_management/from_travelers; currency=aed/afn/all/amd/ars/aud/azn/bam/bdt/bgn/bhd/bif/bnd/bob/brl/bwp/byn/bzd/cad/cdf/chf/clp/cny/cop/crc/cve/czk/djf/dkk/dop/dzd/eek/egp/ern/etb/eur/gbp/gel/ghs/gnf/gtq/hkd/hnl/hrk/huf/idr/ils/inr/iqd/irr/isk/jmd/jod/jpy/kes/khr/kmf/krw/kwd/kzt/lbp/lkr/ltl/lvl/lyd/mad/mdl/mga/mkd/mmk/mop/mur/mxn/myr/mzn/nad/ngn/nio/nok/npr/nzd/omr/pab/pen/php/pkr/pln/pyg/qar/ron/rsd/rub/rwf/sar/sdg/sek/sgd/sos/syp/thb/tnd/top/try/ttd/twd/tzs/uah/ugx/usd/uyu/uzs/vef/vnd/xaf/xof/yer/zar/zmk/zwl; lang=aa/ab/ae/af/ak/am/an/ar/as/av/ay/az/ba/be/bg/bh/bi/bm/bn/bo/br/bs/ca/ce/ch/co/cr/cs/cu/cv/cy/da/de/dv/ee/el/en/eo/es/et/eu/fa/ff/fi/fj/fo/fr/fy/ga/gd/gl/gn/gu/gv/ha/he/hi/ho/hr/ht/hu/hy/hz/ia/id/ie/ig/ii/ik/io/is/it/iu/iw/ja/jv/ka/kg/ki/kj/kk/kl/km/kn/ko/kr/ks/ku/kv/kw/ky/la/lb/lg/li/ln/lo/lt/lu/lv/mg/mh/mi/mk/ml/mn/mr/ms/mt/my/na/nb/nd/ne/ng/nl/nn/no/nr/nv/ny/oc/oj/om/or/os/pa/pi/pl/ps/pt/qu/rm/rn/ro/ru/rw/sa/sc/sd/se/sg/si/sk/sl/sm/sn/so/sq/sr/ss/st/su/sv/sw/ta/te/tg/th/ti/tk/tl/tn/to/tr/ts/tt/tw/ty/ug/uk/ur/uz/ve/vi/vo/wa/wo/xh/yi/yo/za/zh | up to 30 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, name, category, url, text, rating, rating_scale, review_count, price_level, ranking, address, city, country, location, phone, email, website, latitude, longitude, image_url, platform, cuisines\n- tripadvisor / attractions (景点) — params: keyword | optional: content_type, currency, lang | values: content_type=from_everyone/from_management/from_travelers; currency=aed/afn/all/amd/ars/aud/azn/bam/bdt/bgn/bhd/bif/bnd/bob/brl/bwp/byn/bzd/cad/cdf/chf/clp/cny/cop/crc/cve/czk/djf/dkk/dop/dzd/eek/egp/ern/etb/eur/gbp/gel/ghs/gnf/gtq/hkd/hnl/hrk/huf/idr/ils/inr/iqd/irr/isk/jmd/jod/jpy/kes/khr/kmf/krw/kwd/kzt/lbp/lkr/ltl/lvl/lyd/mad/mdl/mga/mkd/mmk/mop/mur/mxn/myr/mzn/nad/ngn/nio/nok/npr/nzd/omr/pab/pen/php/pkr/pln/pyg/qar/ron/rsd/rub/rwf/sar/sdg/sek/sgd/sos/syp/thb/tnd/top/try/ttd/twd/tzs/uah/ugx/usd/uyu/uzs/vef/vnd/xaf/xof/yer/zar/zmk/zwl; lang=aa/ab/ae/af/ak/am/an/ar/as/av/ay/az/ba/be/bg/bh/bi/bm/bn/bo/br/bs/ca/ce/ch/co/cr/cs/cu/cv/cy/da/de/dv/ee/el/en/eo/es/et/eu/fa/ff/fi/fj/fo/fr/fy/ga/gd/gl/gn/gu/gv/ha/he/hi/ho/hr/ht/hu/hy/hz/ia/id/ie/ig/ii/ik/io/is/it/iu/iw/ja/jv/ka/kg/ki/kj/kk/kl/km/kn/ko/kr/ks/ku/kv/kw/ky/la/lb/lg/li/ln/lo/lt/lu/lv/mg/mh/mi/mk/ml/mn/mr/ms/mt/my/na/nb/nd/ne/ng/nl/nn/no/nr/nv/ny/oc/oj/om/or/os/pa/pi/pl/ps/pt/qu/rm/rn/ro/ru/rw/sa/sc/sd/se/sg/si/sk/sl/sm/sn/so/sq/sr/ss/st/su/sv/sw/ta/te/tg/th/ti/tk/tl/tn/to/tr/ts/tt/tw/ty/ug/uk/ur/uz/ve/vi/vo/wa/wo/xh/yi/yo/za/zh | up to 30 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, name, category, url, text, rating, rating_scale, review_count, price_level, ranking, address, city, country, location, phone, email, website, latitude, longitude, image_url, platform, cuisines\n- trustpilot / profile (主页或对象详情) — params: company | USD 0.001389/call (USD 1.39/1K) | returns: name, domain, url, trust_score, rating, rating_scale, review_count, categories, platform\n- trustpilot / reviews (评价) — params: company | optional: date, lang, language, sort, stars, verified_only | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, rating, rating_scale, language, like_count, is_verified, verification_level, source, country, author_name, author_id, author_image, author_review_count, reply_text, reply_at, experience_at, updated_at, posted_at, company_name, company_domain, platform\n- truth_social / profile (主页或对象详情) — params: username | USD 0.001389/call (USD 1.39/1K) | returns: user_id, username, display_name, bio, url, external_url, location, follower_count, following_count, post_count, is_verified, is_private, avatar_url, header_url, created_at, platform\n- truth_social / user_posts (用户内容) — params: username | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, text, language, reply_count, repost_count, like_count, author_username, author_name, author_id, author_follower_count, author_verified, reply_to_id, reply_to_account_id, is_reply, is_repost, posted_at, media, hashtags, platform\n- truth_social / replies (回复列表) — params: username | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, text, language, reply_count, repost_count, like_count, author_username, author_name, author_id, author_follower_count, author_verified, reply_to_id, reply_to_account_id, is_reply, is_repost, posted_at, media, hashtags, platform\n- truth_social / post (单条内容) — params: url | optional: id, post_url | USD 0.001389/call (USD 1.39/1K) | returns: id, url, text, language, reply_count, repost_count, like_count, author_username, author_name, author_id, author_follower_count, author_verified, reply_to_id, reply_to_account_id, is_reply, is_repost, posted_at, media, hashtags, platform\n- truth_social / trending (热榜) — params: — | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, text, language, reply_count, repost_count, like_count, author_username, author_name, author_id, author_follower_count, author_verified, reply_to_id, reply_to_account_id, is_reply, is_repost, posted_at, media, hashtags, platform\n- tumblr / search (关键词搜索) — params: keyword | optional: post_type | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, text, post_type, author_username, author_name, author_url, note_count, posted_at, platform, tags\n- tumblr / tag (标签内容) — params: tag | optional: hashtag, post_type | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, text, post_type, author_username, author_name, author_url, note_count, posted_at, platform, tags\n- tumblr / user_posts (用户内容) — params: username | optional: post_type | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, text, post_type, author_username, author_name, author_url, note_count, posted_at, platform, tags\n- tumblr / profile (主页或对象详情) — params: username | USD 0.001389/call (USD 1.39/1K) | returns: username, display_name, bio, url, latest_post_at, platform\n- twitch / search (关键词搜索) — params: keyword | up to 30 per call | USD 0.001389/call (USD 1.39/1K) | returns: user_id, username, display_name, bio, url, avatar_url, banner_url, follower_count, is_partner, is_affiliate, is_live, current_viewers, stream_title, current_game, stream_started_at, last_broadcast_title, last_broadcast_game, last_broadcast_at, created_at, platform\n- twitch / profile (主页或对象详情) — params: username | optional: include_clips, include_videos | USD 0.001389/call (USD 1.39/1K) | returns: user_id, username, display_name, bio, url, avatar_url, banner_url, follower_count, is_partner, is_affiliate, is_live, current_viewers, stream_title, current_game, stream_started_at, last_broadcast_title, last_broadcast_game, last_broadcast_at, created_at, recent_videos, top_clips, platform\n- twitch / clips (直播切片) — params: username | optional: period | up to 30 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, title, url, view_count, duration_seconds, duration_sec, game, channel_username, channel_name, curator_username, curator_name, thumbnail_url, created_at, platform\n- twitch / streams (直播列表) — params: game | up to 30 per call | USD 0.001389/call (USD 1.39/1K) | returns: stream_id, username, display_name, follower_count, title, viewer_count, game, started_at, url, avatar_url, platform\n- twitch / top_streams (热门直播) — params: — | up to 30 per call | USD 0.001389/call (USD 1.39/1K) | returns: stream_id, username, display_name, follower_count, title, viewer_count, game, started_at, url, avatar_url, platform\n- twitch / top_games (热门游戏) — params: — | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, name, viewer_count, broadcaster_count, box_art_url, url, platform\n- twitter / search (关键词搜索) — params: keyword | optional: sort | up to 200 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, url, text, like_count, retweet_count, reply_count, view_count, posted_at, author_username, author_name, author_url, author_follower_count, platform\n- twitter / profile (主页或对象详情) — params: username | USD 0.000556/call (USD 0.56/1K) | returns: user_id, username, display_name, bio, url, follower_count, following_count, post_count, is_verified, location, avatar_url, created_at, platform\n- twitter / user_posts (用户内容) — params: username | up to 200 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, url, text, like_count, retweet_count, reply_count, view_count, posted_at, author_username, author_name, author_url, author_follower_count, platform\n- twitter / post (单条内容) — params: id | optional: tweet_id | USD 0.000556/call (USD 0.56/1K) | returns: id, url, text, like_count, retweet_count, reply_count, view_count, posted_at, author_username, author_name, author_url, author_follower_count, platform\n- twitter / comments (评论) — params: id | optional: tweet_id | up to 50 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, url, text, like_count, retweet_count, reply_count, view_count, posted_at, author_username, author_name, author_url, author_follower_count, platform\n- twitter / trending (热榜) — params: — | optional: country | USD 0.000556/call (USD 0.56/1K) | returns: id, name, rank, volume, period, collected_at, platform\n- twitter / followers_list (粉丝列表) — params: username | up to 2000 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, username, url, name, text, location, avatar_url, follower_count, following_count, post_count, is_verified, is_protected, created_at, platform\n- twitter / following_list (关注列表) — params: username | up to 2000 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, username, url, name, text, location, avatar_url, follower_count, following_count, post_count, is_verified, is_protected, created_at, platform\n- upwork / search (关键词搜索) — params: keyword | optional: exclude_keywords, experience_level, job_type, since, sort, until | values: experience_level=entry_level/expert_level/intermediate_level; job_type=fixed_price/hourly; sort=newest/oldest/relevance | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, budget, budget_currency, hourly_rate_min, hourly_rate_max, job_type, experience_level, engagement_type, duration, proposals, persons_to_hire, posted_at, tags, client_name, client_location, client_rating, client_review_count, client_total_spent, client_hire_rate, client_avg_hourly_rate, payment_verified, email, emails, phone, platform\n- upwork / freelancers (自由职业者) — params: keyword | optional: region, top_rated | values: region=africa/americas/asia/europe/oceania | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, title, text, location, region, timezone, hourly_rate, currency, job_success_score, total_earnings, total_jobs, total_hours, total_hourly_jobs, total_fixed_jobs, is_top_rated, is_top_rated_plus, is_vetted, is_available, skills, image_url, platform\n- vk / video_search (视频搜索) — params: keyword | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, media_type, duration_sec, duration_seconds, posted_at, view_count, like_count, repost_count, cover_image_url, owner_id, owner_url, platform | Temporarily unavailable: we are restoring this capability. Until then calls are refused with 503 `unavailable` (error.reason `temporarily_unavailable`) and a Retry-After header, and are not charged.\n- vk / user_posts (用户内容) — params: username | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, text, posted_at, like_count, comment_count, repost_count, view_count, media_urls, author_id, author_name, author_type, author_url, author_avatar, platform\n- walmart / search (关键词搜索) — params: keyword | optional: lang | values: lang=en/fr | USD 0.001389/call (USD 1.39/1K) | returns: item_id, name, url, brand, price, was_price, currency, rating, rating_scale, review_count, in_stock, availability, seller_name, category, condition, upc, image_url, platform\n- walmart / profile (主页或对象详情) — params: url | optional: lang | values: lang=en/fr | USD 0.001389/call (USD 1.39/1K) | returns: item_id, name, url, brand, price, was_price, currency, rating, rating_scale, review_count, in_stock, availability, seller_name, category, condition, upc, image_url, platform, description, highlights, images, return_policy, is_returnable, badges\n- walmart / reviews (评价) — params: url | up to 300 per call | USD 0.001389/call (USD 1.39/1K) | returns: review_id, title, text, rating, rating_scale, posted_at, author_name, helpful_count, negative_count, is_recommended, is_verified_purchase, product_id, product_name, seller_name, product_rating, product_review_count, platform, images\n- walmart / product_detail (商品详情) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, text, brand, price, original_price, currency, in_stock, rating, rating_scale, review_count, seller_name, category, image_url, platform\n- web / search (关键词搜索) — params: keyword | optional: country, language | USD 0.001389/call (USD 1.39/1K) | returns: title, url, text, rank, published_at, image_url, sub_links\n- wechat_oa / article_search (文章搜索) — params: keyword | optional: category, sub_type | up to 400 per call | USD 0.005556/call (USD 5.56/1K) | returns: id, title, summary, url, cover_image_url, account_name, posted_at, relative_time, kind, platform | May be temporarily unavailable at peak times. Failed calls are not charged.\n- wechat_oa / article_detail (文章正文) — params: url | USD 0.005556/call (USD 5.56/1K) | returns: id, title, url, content_text, content_html, author, account_name, account_ghid, digest, cover_image_url, images, hashtags, is_original, posted_at, ip_region, platform | May be temporarily unavailable at peak times. Failed calls are not charged.\n- wechat_oa / account_search (公众号搜索) — params: keyword | up to 400 per call | USD 0.005556/call (USD 5.56/1K) | returns: account_id, ghid, name, description, alias, avatar_url, verify_flag, biz, platform | May be temporarily unavailable at peak times. Failed calls are not charged.\n- wechat_oa / mini_program_search (小程序搜索) — params: keyword | up to 400 per call | USD 0.005556/call (USD 5.56/1K) | returns: id, name, description, icon_url, username, is_minigame, platform | Temporarily unavailable: we are restoring this capability. Until then calls are refused with 503 `unavailable` (error.reason `temporarily_unavailable`) and a Retry-After header, and are not charged.\n- wechat_oa / search_suggestions (搜索联想) — params: keyword | USD 0.005556/call (USD 5.56/1K) | returns: suggestions, count, platform | Temporarily unavailable: we are restoring this capability. Until then calls are refused with 503 `unavailable` (error.reason `temporarily_unavailable`) and a Retry-After header, and are not charged.\n- wechat_oa / account_profile (公众号资料) — params: account | USD 0.005556/call (USD 5.56/1K) | returns: account_id, name, account_type, description, avatar_url, biz, platform | May be temporarily unavailable at peak times. Failed calls are not charged.\n- wechat_oa / account_principal (公众号主体信息) — params: account | USD 0.005556/call (USD 5.56/1K) | returns: account_id, ghid, name, description, company_name, owner_name, customer_type, verify_status, verify_type, verified_at, registered_country, registered_at, is_overseas, last_login_province, authorized_agents, platform | May be temporarily unavailable at peak times. Failed calls are not charged.\n- wechat_oa / account_articles (公众号历史文章) — params: account | up to 160 per call | USD 0.005556/call (USD 5.56/1K) | returns: id, title, url, cover_image_url, posted_at, position, is_original, is_deleted, account_name, account_id, account_ghid, platform | May be temporarily unavailable at peak times. Failed calls are not charged.\n- wechat_oa / account_today_articles (公众号当日文章) — params: account | USD 0.005556/call (USD 5.56/1K) | returns: id, title, url, cover_image_url, posted_at, position, is_original, is_deleted, account_name, account_id, account_ghid, platform | Temporarily unavailable: we are restoring this capability. Until then calls are refused with 503 `unavailable` (error.reason `temporarily_unavailable`) and a Retry-After header, and are not charged.\n- wechat_oa / article_comments (文章评论) — params: url | up to 260 per call | USD 0.005556/call (USD 5.56/1K) | returns: id, text, author_name, author_avatar_url, like_count, posted_at, is_top, reply_count, country, province, platform | May be temporarily unavailable at peak times. Failed calls are not charged.\n- wechat_oa / comment_replies (评论回复) — params: url, comment_id | optional: content_id | USD 0.005556/call (USD 5.56/1K) | returns: id, text, author_name, author_avatar_url, like_count, posted_at, country, province, city, platform | Temporarily unavailable: we are restoring this capability. Until then calls are refused with 503 `unavailable` (error.reason `temporarily_unavailable`) and a Retry-After header, and are not charged.\n- wechat_oa / article_metrics (文章传播数据) — params: url | USD 0.005556/call (USD 5.56/1K) | returns: read_count, like_count, watching_count, share_count, collect_count, comment_count, platform | May be temporarily unavailable at peak times. Failed calls are not charged.\n- wechat_oa / wechat_index (微信指数) — params: keyword | USD 0.005556/call (USD 5.56/1K) | returns: keyword, latest_index, latest_date, data_points, trend, platform | Temporarily unavailable: we are restoring this capability. Until then calls are refused with 503 `unavailable` (error.reason `temporarily_unavailable`) and a Retry-After header, and are not charged.\n- weibo / search (关键词搜索) — params: keyword | up to 50 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, url, text, posted_at, device, repost_count, comment_count, like_count, is_repost, author_id, author_name, author_bio, author_follower_count, author_following_count, author_verified, author_verified_reason, author_avatar_url, image_urls, video_url, platform\n- weibo / profile (主页或对象详情) — params: user_id | USD 0.000556/call (USD 0.56/1K) | returns: user_id, display_name, url, bio, gender, follower_count, following_count, post_count, is_verified, verified_reason, avatar_url, cover_image_url, company, created_at, platform\n- weibo / comments (评论) — params: url | up to 50 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, text, like_count, author_id, author_name, author_avatar_url, post_id, post_url, posted_at, platform\n- weibo / trending (热榜) — params: — | up to 200 per call | USD 0.000556/call (USD 0.56/1K) | returns: rank, title, category, hot_value, label, is_hot, is_new, url, platform\n- xianyu / search (关键词搜索) — params: keyword | up to 50 per call | USD 0.005556/call (USD 5.56/1K) | returns: item_id, url, title, price, original_price, currency, city, image_url, want_count, tags, category_id, free_shipping, is_auction, has_video, posted_at, seller_id, seller_name, seller_avatar_url, seller_credit_label, platform\n- xianyu / item_detail (商品详情) — params: urls | USD 0.005556/call (USD 5.56/1K) | returns: item_id, url, title, text, price, original_price, currency, shipping_fee, condition_level, status, quantity, want_count, view_count, collect_count, sold_count, province, city, category_id, image_url, images, posted_at, seller_id, seller_name, seller_url, seller_item_count, seller_sold_count, seller_good_review_rate, seller_reply_rate_24h, district, division_id, lat, lng, poi_name, poi_id, seller_avatar_url, seller_city, seller_bio, seller_joined_at, seller_last_seen, seller_zhima_verified, seller_zhima_level, seller_zhima_level_code, seller_credit_level, seller_identity_tags, seller_other_items, platform\n- xiaohongshu / search (关键词搜索) — params: keyword | optional: content_type, date_range, page_token, sort | values: content_type=all/image/video; sort=most_collected/most_commented/most_liked/newest/relevance; date_range=last_24_hours/last_7_days | one page of 20 per call, more via next_page_token (limit is ignored) | paged via next_page_token | USD 0.005556/call (USD 5.56/1K) | returns: id, url, title, text, like_count, collect_count, comment_count, share_count, posted_at, image_url, author_name, author_id, avatar_url, author_url, is_video, next_page_token, video_url, duration_sec, duration_seconds, platform, poi_id, poi_name, images, is_goods_note, author_is_verified\n- xiaohongshu / profile (主页或对象详情) — params: user_id | USD 0.005556/call (USD 5.56/1K) | returns: user_id, nickname, red_id, url, bio, follower_count, following_count, like_collect_count, post_count, gender, ip_location, avatar_url, is_verified, tags, like_count, collect_count, real_name_info, verification_type, verification_text, location, platform\n- xiaohongshu / user_posts (用户内容) — params: user_id | optional: page_token | one page of 20 per call, more via next_page_token (limit is ignored) | paged via next_page_token | USD 0.005556/call (USD 5.56/1K) | returns: id, url, title, text, like_count, collect_count, comment_count, share_count, posted_at, image_url, author_name, author_id, avatar_url, author_url, is_video, next_page_token, video_url, duration_sec, duration_seconds, platform, images, is_goods_note, is_pinned, ip_location\n- xiaohongshu / note (笔记详情) — params: url | USD 0.005556/call (USD 5.56/1K) | returns: id, url, title, text, like_count, collect_count, comment_count, share_count, posted_at, ip_location, author_name, author_id, is_video, avatar_url, author_url, platform, images, tags, topics, mentioned_users, lat, lng, has_goods, author_red_id, author_is_verified, language\n- xiaohongshu / video (视频详情) — params: url | USD 0.005556/call (USD 5.56/1K) | returns: id, url, video_url, duration_sec, duration_seconds, platform\n- xiaohongshu / comments (评论) — params: url | optional: page_token, sort | values: sort=default/most_liked/newest | one page of 15 per call, more via next_page_token (limit is ignored) | paged via next_page_token | USD 0.005556/call (USD 5.56/1K) | returns: id, text, like_count, posted_at, ip_location, author_name, author_id, sub_comment_count, note_id, note_url, next_page_token, images, is_author, author_avatar_url, author_red_id, author_is_ai_agent, mentioned_users, platform\n- xiaohongshu / comments_batch (多链接评论批量采集) — params: urls | optional: sort | values: sort=default/most_liked/newest | one page of 15 per target, no next_page_token (to read further, page one target at a time with the single-target action; limit is ignored) | USD 0.005556/call (USD 5.56/1K) | returns: id, text, like_count, posted_at, ip_location, author_name, author_id, sub_comment_count, note_id, note_url, next_page_token, images, is_author, author_avatar_url, author_red_id, author_is_ai_agent, mentioned_users, platform\n- xiaohongshu / sub_comments (评论回复) — params: url, comment_id | optional: page_token | one page of 10 per call, more via next_page_token (limit is ignored) | paged via next_page_token | USD 0.005556/call (USD 5.56/1K) | returns: id, text, like_count, posted_at, ip_location, author_name, author_id, reply_to_id, reply_to_author_name, reply_to_author_id, next_page_token, images, is_author, author_avatar_url, author_red_id, author_is_ai_agent, mentioned_users, platform\n- xiaohongshu / search_users (用户搜索) — params: keyword | optional: follower_range, page_token, user_type | values: follower_range=100_to_1k/10k_to_100k/1k_to_10k/over_100k/under_100; user_type=business/general/verified_individual | one page of 20 per call, more via next_page_token (limit is ignored) | paged via next_page_token | USD 0.005556/call (USD 5.56/1K) | returns: user_id, nickname, red_id, avatar_url, url, follower_count, is_verified, verification_type, next_page_token, platform\n- xiaohongshu / hashtag (话题内容) — params: topic_id | optional: page_token, sort | values: sort=newest/popular | one page of up to 20 per call (the count varies by page; a short page is not the end), more via next_page_token (limit is ignored) | paged via next_page_token | USD 0.005556/call (USD 5.56/1K) | returns: id, url, title, text, like_count, collect_count, comment_count, share_count, posted_at, image_url, author_name, author_id, avatar_url, author_url, is_video, next_page_token, video_url, duration_sec, duration_seconds, platform, images\n- xiaohongshu / trending (热榜) — params: — | up to 30 per call | USD 0.005556/call (USD 5.56/1K) | returns: id, url, title, author_name, is_video, image_url, platform\n- xing / jobs (职位搜索) — params: keyword | optional: discipline, employment_type, location, radius, salary_max, salary_min | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, company, company_url, location, country, salary_min, salary_max, salary_median, salary_currency, employment_type, career_level, discipline, industry, remote_option, company_size, apply_url, valid_through, keywords, language, posted_at, description, kununu_rating, platform\n- xing / job_detail (职位详情) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, company, company_url, location, country, salary_min, salary_max, salary_median, salary_currency, employment_type, career_level, discipline, industry, remote_option, company_size, apply_url, valid_through, keywords, language, posted_at, description, kununu_rating, platform\n- xing / company (公司资料) — params: company | USD 0.001389/call (USD 1.39/1K) | returns: id, name, url, headline, summary, description, industry, website, founded_year, follower_count, employee_count, company_size, locations, logo_url, kununu_rating, platform\n- xing / profile (主页或对象详情) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: username, name, headline, location, city, country, current_company, current_title, is_premium, avatar_url, skills, education, languages, interests, timeline, url, platform\n- yahoo_finance / search (关键词搜索) — params: keyword | optional: tickers | USD 0.001389/call (USD 1.39/1K) | returns: id, name, symbol, sector, industry, market_cap, price, currency, quote_type, exchange, pe_ratio, dividend_yield, platform\n- yahoo_finance / history (历史行情) — params: keyword | optional: interval, period | USD 0.001389/call (USD 1.39/1K) | returns: symbol, date, open, high, low, close, volume, dividends, stock_splits, platform\n- yahoo_finance / financials (财务指标) — params: keyword | USD 0.001389/call (USD 1.39/1K) | returns: symbol, income, balance_sheet, cash_flow, quarterly_income, platform\n- yahoo_finance / news (财经新闻) — params: keyword | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, text, publisher, posted_at, symbol, platform\n- yahoo_finance / analyst (分析师评级) — params: keyword | USD 0.001389/call (USD 1.39/1K) | returns: symbol, recommendation_trend, upgrades_downgrades, platform\n- yahoo_finance / options (期权链) — params: keyword | USD 0.001389/call (USD 1.39/1K) | returns: contract_symbol, strike, last_price, bid, ask, volume, open_interest, implied_volatility, in_the_money, expiration, symbol, expiration_dates, strikes, calls, puts, platform\n- yahoo_finance / trending (热榜) — params: — | optional: screener | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, symbol, name, price, change, change_percent, volume, market_cap, currency, exchange, pe_ratio, fifty_two_week_range, platform\n- yandex / search (关键词搜索) — params: keyword | optional: category, lang, language, location, max_price, min_price, sort | values: category=atms/auto_repair/banks/bars_pubs/beauty_salons/burgers/cafes/car_wash/cinemas/coffee_shops/dentists/dry_cleaning/fast_food/fitness_clubs/gas_stations/government_services/grocery_stores/hookah_bars/hospitals/hotels/kindergartens/museums/none/pharmacies/pizza/restaurants/schools/shopping_malls/sports_facilities/sushi_rolls/veterinary_clinics; lang=en/kk/ru/tr/uk; sort=distance/relevance | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, text, address, city, country, categories, rating, rating_scale, review_count, phone, website, lat, lng, is_open_now, platform\n- yandex / market (市场与地点搜索) — params: keyword | optional: city, max_price, min_price, region, sort | values: city=chelyabinsk/kazan/krasnodar/krasnoyarsk/moscow/nizhny_novgorod/novosibirsk/omsk/perm/rostov_on_don/saint_petersburg/samara/ufa/volgograd/voronezh/yekaterinburg; sort=popular/top_rated | up to 100 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, price, currency, rating, rating_scale, rating_count, review_count, purchase_count, category, shop_name, shop_rating, stock, is_available, image_url, platform\n- yandex / reviews (评价) — params: url | optional: language, sort | values: sort=lowest_rated/newest/relevance/top_rated | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, text, rating, rating_scale, posted_at, language, like_count, dislike_count, comment_count, author_name, owner_reply, business_id, business_name, business_rating, business_review_count, platform\n- yelp / search (关键词搜索) — params: keyword | optional: location | up to 50 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, name, url, rating, rating_scale, review_count, price_range, phone, website, categories, cuisine, description, address, city, region, postal_code, country, is_claimed, is_verified, health_score, established_year, image_url, platform, images, amenities, highlights, hours\n- yelp / profile (主页或对象详情) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: id, name, url, rating, rating_scale, review_count, price_range, phone, website, categories, cuisine, description, address, city, region, postal_code, country, is_claimed, is_verified, health_score, established_year, image_url, platform, images, amenities, highlights, hours\n- yelp / reviews (评价) — params: url | optional: page_token | up to 10 per call (larger limits are capped) | paged via next_page_token | USD 0.001389/call (USD 1.39/1K) | returns: id, text, rating, rating_scale, posted_at, author_name, useful_count, funny_count, cool_count, photo_count, business_name, business_url, platform\n- youku / search (关键词搜索) — params: keyword | up to 150 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, title, subtitle, category, source_name, release_date, is_completed, corner_tag, thumbnail_url, platform\n- youku / video (视频详情) — params: id | USD 0.001389/call (USD 1.39/1K) | returns: id, show_id, url, title, show_name, subtitle, category, video_type, duration_seconds, duration_sec, episode_total, episode_last, is_completed, comment_count, like_count, is_vip, allow_comment, posted_at, show_release_time, thumbnail_url, tags, author_id, author_name, author_avatar_url, author_follower_count, author_url, platform\n- youku / profile (主页或对象详情) — params: user_id | USD 0.001389/call (USD 1.39/1K) | returns: user_id, numeric_id, name, url, bio, avatar_url, gender, like_count, follower_count, is_verified, verified_desc, location, platform\n- youku / transcript (视频文稿) (async) — params: url | USD 0.002778/call (USD 2.78/1K) | returns: title, text, language, translated_text, translated_language, duration_seconds, duration_sec, author_name, author_id, author_url, thumbnail_url, tags, platform\n- youtube / search (关键词搜索) — params: keyword | optional: sort | values: sort=most_viewed/newest/relevance/top_rated | up to 50 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, url, title, text, author_name, author_username, author_id, author_url, like_count, comment_count, view_count, duration, posted_at, platform\n- youtube / profile (主页或对象详情) — params: url | USD 0.000556/call (USD 0.56/1K) | returns: channel_id, name, url, bio, subscriber_count, video_count, view_count, is_verified, location, avatar_url, banner_url, created_at, platform\n- youtube / user_posts (用户内容) — params: url | optional: since, sort | values: sort=newest/oldest/popular | up to 50 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, url, title, text, author_name, author_username, author_id, author_url, like_count, comment_count, view_count, duration, posted_at, platform\n- youtube / video (视频详情) — params: url | USD 0.000556/call (USD 0.56/1K) | returns: id, url, title, text, author_name, author_username, author_id, author_url, like_count, comment_count, view_count, duration, posted_at, platform\n- youtube / comments (评论) — params: url | optional: since, sort | values: sort=newest/popular | up to 100 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, text, author_name, like_count, reply_count, posted_at, is_reply, reply_to_id, platform\n- youtube / followers (粉丝数量) — params: username | optional: channel | USD 0.000556/call (USD 0.56/1K) | returns: id, username, url, follower_count, following_count, post_count, like_count, connection_count, precision, platform\n- youtube / transcript (视频文稿) — params: url | optional: language | USD 0.000556/call (USD 0.56/1K) | returns: id, url, title, text, segments, language, available_languages, channel_id, channel_name, channel_username, view_count, like_count, comment_count, posted_at, platform\n- youtube / shorts (Shorts 短视频) — params: username | optional: channel, since, sort | values: sort=newest/oldest/popular | up to 100 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, url, title, thumbnail_url, view_count, like_count, duration, posted_at, author_name, author_id, author_url, platform\n- zhihu / search (关键词搜索) — params: keyword | optional: content_type, sort | values: content_type=all/answer/article/video; sort=general/time_descending/upvote_count_descending | up to 100 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, type, url, title, text, like_count, comment_count, collect_count, posted_at, cover_image_url, platform, author_id, author_name, author_url, author_avatar_url, author_bio, author_follower_count, author_verified, author_verification_label\n- zhihu / content_detail (内容详情) — params: url | USD 0.000556/call (USD 0.56/1K) | returns: id, type, url, title, text, like_count, comment_count, collect_count, posted_at, platform, author_id, author_name, author_url, author_avatar_url, author_bio, author_follower_count, author_verified, author_verification_label\n- zhihu / content_comments (内容评论) — params: url | up to 100 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, text, like_count, posted_at, reply_count, author_id, author_name, author_avatar_url, platform\n- zhihu / comment_replies (评论回复) — params: url, comment_id | up to 100 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, text, like_count, posted_at, reply_count, author_id, author_name, author_avatar_url, platform\n- zhihu / profile (主页或对象详情) — params: url | USD 0.000556/call (USD 0.56/1K) | returns: author_id, author_name, author_url, author_avatar_url, author_bio, author_follower_count, author_verified, author_verification_label, answer_count, article_count, received_upvote_count, platform\n- zhihu / user_articles (用户文章) — params: url | up to 100 per call | USD 0.000556/call (USD 0.56/1K) | returns: id, type, url, title, text, like_count, comment_count, collect_count, posted_at, cover_image_url, platform, author_id, author_name, author_url, author_avatar_url, author_bio, author_follower_count, author_verified, author_verification_label\n- zillow / search (关键词搜索) — params: keyword | optional: category, max_price, min_price, sort | values: category=address/auto_detect/borough/city/county/flex_region/neighborhood/school/state/zipcode; sort=bathrooms/bedrooms/lot_size/newest/price_asc/price_desc/recently_changed/relevance/sqft/year_built | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: zpid, url, status, status_type, price, currency, address, street, city, state, zipcode, latitude, longitude, beds, baths, area_sqft, home_type, home_status, zestimate, rent_zestimate, tax_assessed_value, lot_area_value, lot_area_unit, days_on_zillow, broker_name, is_zillow_owned, has_3d_model, has_video, image_url, platform\n- zillow / zip_search (邮编房源搜索) — params: zip | optional: days_on_zillow, for_rent, for_sale_by_agent, for_sale_by_owner, max_price, min_price, sold | values: days_on_zillow=1/12m/14/24m/30/36m/6m/7/90 | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: zpid, url, status, status_type, price, currency, address, street, city, state, zipcode, latitude, longitude, beds, baths, area_sqft, home_type, home_status, zestimate, rent_zestimate, tax_assessed_value, lot_area_value, lot_area_unit, days_on_zillow, broker_name, is_zillow_owned, has_3d_model, has_video, image_url, platform\n- zillow / profile (主页或对象详情) — params: url | optional: property_status | values: property_status=for_rent/for_sale/recently_sold | USD 0.001389/call (USD 1.39/1K) | returns: zpid, url, home_status, home_type, price, currency, address, city, state, zipcode, county, latitude, longitude, beds, baths, area_sqft, lot_area_value, lot_area_unit, year_built, price_per_sqft, hoa_fee, has_garage, parking_capacity, zestimate, rent_zestimate, zestimate_low_percent, zestimate_high_percent, tax_assessed_value, tax_assessed_year, property_tax_rate, last_sold_price, last_sold_at, days_on_zillow, photo_count, description, listing_agent, listing_agent_phone, listing_broker, mls_id, mls_name, platform, images, price_history, schools\n- zillow / property_detail (房源详情) — params: url | USD 0.001389/call (USD 1.39/1K) | returns: id, url, address, city, state, postal_code, latitude, longitude, price, zestimate, rent_zestimate, tax_assessed_value, status, home_type, bedrooms, bathrooms, area_sqft, lot_size, year_built, days_on_market, text, image_url, photo_count, platform\n- zillow / agents (房产经纪人) — params: keyword | optional: brokerage, city, min_rating | up to 200 per call | USD 0.001389/call (USD 1.39/1K) | returns: id, url, name, business_name, types, address, city, state, postal_code, phone, rating, rating_scale, review_count, is_top_agent, avatar_url, platform","tags":["Social"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"},"description":"1-255 visible ASCII characters, one new key per logical request. Synchronous calls: the same key with the same platform/action/params within 24 hours replays the first successful response (same `billing`, not run or charged again, `replayed: true`, header `Idempotent-Replayed: true`); different params → `409 idempotency_conflict`; first request still running → `409 idempotency_in_progress` + Retry-After; a first request that did not succeed releases the key. Async submissions: the same key returns the original job; without a key, identical async submissions within the same 5-minute window are deduplicated. A failed job whose charge was refunded is not replayed."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["platform","action"],"properties":{"platform":{"type":"string","example":"xiaohongshu","description":"Platform: xiaohongshu / twitter / reddit / tiktok / youtube / facebook / threads / linkedin / instagram / web"},"action":{"type":"string","example":"search","description":"Action: search / post / profile / user_posts / discover / persona"},"params":{"type":"object","example":{"keyword":"AI tools","limit":20},"description":"Neutral params for the capability, e.g. {\"keyword\": \"...\", \"limit\": 20}"},"mode":{"type":"string","enum":["sync","async"],"default":"sync","description":"sync (default) waits for the result; async applies to EVERY capability and returns 202 + job_id immediately — poll GET /api/v1/jobs/{job_id}. Use async for slow tasks or large limits to stay clear of the 85s sync budget. Async submissions accept an `Idempotency-Key` header (see the header parameter)"}}}}}},"responses":{"200":{"description":"Success — results array (or a profile object)","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Request id — the same value as the `X-Request-Id` header and, on errors, `error.request_id`. Quote it when reporting a problem."},"replayed":{"type":"boolean","description":"Present (true) when this is the stored first response for the same `Idempotency-Key` (also signalled by the `Idempotent-Replayed: true` header); nothing was run or charged again. `id` is the first request's id."},"platform":{"type":"string"},"action":{"type":"string"},"results":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"platform":{"type":["string","null"],"description":"数据来源平台标识，与请求里的 platform 一致（如 xiaohongshu、tiktok）。"},"id":{"type":["string","null"],"description":"该记录在原平台上的唯一标识。仅在同一平台内唯一，跨平台可能重复。"},"url":{"type":["string","null"],"description":"该记录在原平台上的可访问链接。"},"type":{"type":["string","null"],"description":"记录类型，取值随能力而定（如 video / image / text）。"},"title":{"type":["string","null"],"description":"标题。平台无标题概念时（如纯文本帖）为 null。"},"text":{"type":["string","null"],"description":"正文内容，已去除 HTML 标签，全文返回、不截断（个别平台的列表结果本身只有摘要，以该平台的字段说明为准）。"},"description":{"type":["string","null"],"description":"简介或描述，通常比 text 短。"},"posted_at":{"type":["string","null"],"description":"发布时间，ISO 8601 格式、UTC 时区（如 2026-08-07T12:34:56+00:00）。平台只给非标准字符串时原样透传，解析前建议做容错。null 表示平台未公开。"},"created_at":{"type":["string","null"],"description":"创建时间，格式同 posted_at。"},"language":{"type":["string","null"],"description":"内容语言代码（如 zh、en），由平台判定，可能不准。"},"tags":{"type":["array","null"],"description":"标签数组。无标签时为空数组，不是 null。"},"hashtags":{"type":["array","null"],"description":"正文里的话题标签数组，按出现顺序；没有时不出现这个字段。"},"category":{"type":["string","null"],"description":"分类名称，取值为原平台的分类体系，未做跨平台归一。"},"location":{"type":["string","null"],"description":"地理位置描述，原文透传，格式随平台而异。"},"like_count":{"type":["integer","null"],"description":"点赞数。null 表示该平台或该接口不公开此数据，不等于 0。"},"comment_count":{"type":["integer","null"],"description":"评论数。null 表示不公开，不等于 0。"},"share_count":{"type":["integer","null"],"description":"分享/转发数。null 表示不公开，不等于 0。"},"view_count":{"type":["integer","null"],"description":"浏览/播放数。null 表示不公开，不等于 0。"},"collect_count":{"type":["integer","null"],"description":"收藏数。null 表示不公开，不等于 0。"},"repost_count":{"type":["integer","null"],"description":"转发数（区别于引用转发）。null 表示不公开。"},"reply_count":{"type":["integer","null"],"description":"回复数，通常用于评论的子回复。null 表示不公开。"},"review_count":{"type":["integer","null"],"description":"评价条数，用于商品/商家类能力。null 表示不公开，不等于 0。"},"rating":{"type":["number","null"],"description":"评分。**分制随平台而异**，同一行的 `rating_scale` 给出该平台满分 (多数是 5，Booking/豆瓣/爱奇艺/NAVER 是 10)。跨平台比较前必须先按 rating_scale 换算 —— 直接比数字会得出反的结论。"},"rating_scale":{"type":["integer","null"],"description":"上一列 `rating` 的满分。5 表示五星制、10 表示十分制。只在该行有 rating 时出现。"},"rating_count":{"type":["integer","null"],"description":"参与评分的人数。null 表示不公开，不等于 0。"},"author_name":{"type":["string","null"],"description":"作者昵称（显示名）。"},"author_username":{"type":["string","null"],"description":"作者用户名（@handle），通常可用于拼 URL。"},"author_id":{"type":["string","null"],"description":"作者在原平台的唯一 ID。"},"author_url":{"type":["string","null"],"description":"作者在原平台的主页链接。"},"author_follower_count":{"type":["integer","null"],"description":"作者粉丝数。null 表示不公开。"},"name":{"type":["string","null"],"description":"名称。用于账号/商品/商家类能力，指该对象本身的名字。"},"username":{"type":["string","null"],"description":"用户名（@handle）。"},"display_name":{"type":["string","null"],"description":"显示名，可能与 username 不同。"},"user_id":{"type":["string","null"],"description":"用户在原平台的唯一 ID。"},"bio":{"type":["string","null"],"description":"个人简介，账号自己填写的文本。可能含换行和 emoji。"},"avatar_url":{"type":["string","null"],"description":"头像图片链接。部分平台给的是带尺寸参数的 CDN 链接，可能有时效。"},"follower_count":{"type":["integer","null"],"description":"粉丝数。null 表示不公开，不等于 0。"},"following_count":{"type":["integer","null"],"description":"关注数。null 表示不公开，不等于 0。"},"post_count":{"type":["integer","null"],"description":"发布内容总数。null 表示不公开，不等于 0。"},"is_verified":{"type":["boolean","null"],"description":"是否为平台认证账号（蓝V等）。null 表示无法判定。"},"website":{"type":["string","null"],"description":"账号或商家填写的外链网址。"},"image_url":{"type":["string","null"],"description":"图片链接。多图能力可能返回 image_urls 数组。"},"image_urls":{"type":["array","null"],"description":"图片链接数组，按平台展示顺序；没有图片时不出现这个字段。"},"images":{"type":["array","null"],"description":"图片链接数组，按平台展示顺序；没有图片时不出现这个字段。"},"thumbnail_url":{"type":["string","null"],"description":"缩略图链接，分辨率低于 image_url。"},"is_video":{"type":["boolean","null"],"description":"该条内容是否为视频。"},"duration_seconds":{"type":["integer","null"],"description":"时长，单位秒。非视频/音频内容为 null。"},"recent_videos":{"type":["array","null"],"description":"最近发布的视频列表，每项是一个视频（标题、链接、播放数、时长等）；没有时不出现这个字段。"},"price":{"type":["number","null"],"description":"价格数值，不含货币符号；币种见 currency。"},"currency":{"type":["string","null"],"description":"价格币种代码（如 CNY、USD）。price 存在但 currency 为 null 时不要假定币种。"},"address":{"type":["string","null"],"description":"详细地址，原文透传。"},"city":{"type":["string","null"],"description":"城市名，用原平台的语言书写，未做中英归一。"},"country":{"type":["string","null"],"description":"国家或地区。可能是全称也可能是 ISO 代码，取决于平台，未归一。"},"phone":{"type":["string","null"],"description":"联系电话，原文透传，未做号码格式归一。"},"email":{"type":["string","null"],"description":"联系邮箱，原文透传。"},"emails":{"type":["array","null"],"description":"联系邮箱列表（一条记录可能有多个），原文透传、去重。"},"owner_response":{"type":["object","null"],"description":"商家对这条评价的公开回复，含正文（text）、回复人（author_name）和回复时间（posted_at）；没有回复时不出现这个字段。"},"duration_sec":{"type":["integer","null"],"description":"Same value as `duration_seconds` (both are always present together)"}},"additionalProperties":true}},{"type":"object","properties":{"platform":{"type":["string","null"],"description":"数据来源平台标识，与请求里的 platform 一致（如 xiaohongshu、tiktok）。"},"id":{"type":["string","null"],"description":"该记录在原平台上的唯一标识。仅在同一平台内唯一，跨平台可能重复。"},"url":{"type":["string","null"],"description":"该记录在原平台上的可访问链接。"},"type":{"type":["string","null"],"description":"记录类型，取值随能力而定（如 video / image / text）。"},"title":{"type":["string","null"],"description":"标题。平台无标题概念时（如纯文本帖）为 null。"},"text":{"type":["string","null"],"description":"正文内容，已去除 HTML 标签，全文返回、不截断（个别平台的列表结果本身只有摘要，以该平台的字段说明为准）。"},"description":{"type":["string","null"],"description":"简介或描述，通常比 text 短。"},"posted_at":{"type":["string","null"],"description":"发布时间，ISO 8601 格式、UTC 时区（如 2026-08-07T12:34:56+00:00）。平台只给非标准字符串时原样透传，解析前建议做容错。null 表示平台未公开。"},"created_at":{"type":["string","null"],"description":"创建时间，格式同 posted_at。"},"language":{"type":["string","null"],"description":"内容语言代码（如 zh、en），由平台判定，可能不准。"},"tags":{"type":["array","null"],"description":"标签数组。无标签时为空数组，不是 null。"},"hashtags":{"type":["array","null"],"description":"正文里的话题标签数组，按出现顺序；没有时不出现这个字段。"},"category":{"type":["string","null"],"description":"分类名称，取值为原平台的分类体系，未做跨平台归一。"},"location":{"type":["string","null"],"description":"地理位置描述，原文透传，格式随平台而异。"},"like_count":{"type":["integer","null"],"description":"点赞数。null 表示该平台或该接口不公开此数据，不等于 0。"},"comment_count":{"type":["integer","null"],"description":"评论数。null 表示不公开，不等于 0。"},"share_count":{"type":["integer","null"],"description":"分享/转发数。null 表示不公开，不等于 0。"},"view_count":{"type":["integer","null"],"description":"浏览/播放数。null 表示不公开，不等于 0。"},"collect_count":{"type":["integer","null"],"description":"收藏数。null 表示不公开，不等于 0。"},"repost_count":{"type":["integer","null"],"description":"转发数（区别于引用转发）。null 表示不公开。"},"reply_count":{"type":["integer","null"],"description":"回复数，通常用于评论的子回复。null 表示不公开。"},"review_count":{"type":["integer","null"],"description":"评价条数，用于商品/商家类能力。null 表示不公开，不等于 0。"},"rating":{"type":["number","null"],"description":"评分。**分制随平台而异**，同一行的 `rating_scale` 给出该平台满分 (多数是 5，Booking/豆瓣/爱奇艺/NAVER 是 10)。跨平台比较前必须先按 rating_scale 换算 —— 直接比数字会得出反的结论。"},"rating_scale":{"type":["integer","null"],"description":"上一列 `rating` 的满分。5 表示五星制、10 表示十分制。只在该行有 rating 时出现。"},"rating_count":{"type":["integer","null"],"description":"参与评分的人数。null 表示不公开，不等于 0。"},"author_name":{"type":["string","null"],"description":"作者昵称（显示名）。"},"author_username":{"type":["string","null"],"description":"作者用户名（@handle），通常可用于拼 URL。"},"author_id":{"type":["string","null"],"description":"作者在原平台的唯一 ID。"},"author_url":{"type":["string","null"],"description":"作者在原平台的主页链接。"},"author_follower_count":{"type":["integer","null"],"description":"作者粉丝数。null 表示不公开。"},"name":{"type":["string","null"],"description":"名称。用于账号/商品/商家类能力，指该对象本身的名字。"},"username":{"type":["string","null"],"description":"用户名（@handle）。"},"display_name":{"type":["string","null"],"description":"显示名，可能与 username 不同。"},"user_id":{"type":["string","null"],"description":"用户在原平台的唯一 ID。"},"bio":{"type":["string","null"],"description":"个人简介，账号自己填写的文本。可能含换行和 emoji。"},"avatar_url":{"type":["string","null"],"description":"头像图片链接。部分平台给的是带尺寸参数的 CDN 链接，可能有时效。"},"follower_count":{"type":["integer","null"],"description":"粉丝数。null 表示不公开，不等于 0。"},"following_count":{"type":["integer","null"],"description":"关注数。null 表示不公开，不等于 0。"},"post_count":{"type":["integer","null"],"description":"发布内容总数。null 表示不公开，不等于 0。"},"is_verified":{"type":["boolean","null"],"description":"是否为平台认证账号（蓝V等）。null 表示无法判定。"},"website":{"type":["string","null"],"description":"账号或商家填写的外链网址。"},"image_url":{"type":["string","null"],"description":"图片链接。多图能力可能返回 image_urls 数组。"},"image_urls":{"type":["array","null"],"description":"图片链接数组，按平台展示顺序；没有图片时不出现这个字段。"},"images":{"type":["array","null"],"description":"图片链接数组，按平台展示顺序；没有图片时不出现这个字段。"},"thumbnail_url":{"type":["string","null"],"description":"缩略图链接，分辨率低于 image_url。"},"is_video":{"type":["boolean","null"],"description":"该条内容是否为视频。"},"duration_seconds":{"type":["integer","null"],"description":"时长，单位秒。非视频/音频内容为 null。"},"recent_videos":{"type":["array","null"],"description":"最近发布的视频列表，每项是一个视频（标题、链接、播放数、时长等）；没有时不出现这个字段。"},"price":{"type":["number","null"],"description":"价格数值，不含货币符号；币种见 currency。"},"currency":{"type":["string","null"],"description":"价格币种代码（如 CNY、USD）。price 存在但 currency 为 null 时不要假定币种。"},"address":{"type":["string","null"],"description":"详细地址，原文透传。"},"city":{"type":["string","null"],"description":"城市名，用原平台的语言书写，未做中英归一。"},"country":{"type":["string","null"],"description":"国家或地区。可能是全称也可能是 ISO 代码，取决于平台，未归一。"},"phone":{"type":["string","null"],"description":"联系电话，原文透传，未做号码格式归一。"},"email":{"type":["string","null"],"description":"联系邮箱，原文透传。"},"emails":{"type":["array","null"],"description":"联系邮箱列表（一条记录可能有多个），原文透传、去重。"},"owner_response":{"type":["object","null"],"description":"商家对这条评价的公开回复，含正文（text）、回复人（author_name）和回复时间（posted_at）；没有回复时不出现这个字段。"},"duration_sec":{"type":["integer","null"],"description":"Same value as `duration_seconds` (both are always present together)"}},"additionalProperties":true}],"description":"Result rows. **The key is always `results`** — never `posts`/`comments`/`videos` (an older description claimed otherwise; it was wrong and made clients write dead branches). Shape depends on the capability: list actions give an array, single-object actions (profile, note, product_detail…) give one object. Check `returns_list` in GET /api/v1/social/catalog — it is `true` for array actions and `false` for object actions, so you never have to guess. Any field ending in _count / _likes / _views is always an integer; when the platform shows an approximate value it is preserved in `<field>_display` (e.g. like_count: 10 alongside like_count_display: \"10+\")."},"count":{"type":"integer","description":"Number of rows returned (list actions only)"},"next_page_token":{"type":["string","null"],"description":"Present on actions that can be paged (catalog `pagination`). Send the same request with `page_token` set to this value for the next page; null on the last page. Opaque, tied to your account and this request, valid for 24 hours."},"pagination":{"type":"object","description":"Present on actions that can be paged (catalog `pagination`).","properties":{"page":{"type":"integer","description":"The page just returned, starting at 1"},"has_more":{"type":"boolean"},"stop_reason":{"type":["string","null"],"enum":["end_of_list","depth_limit",null],"description":"Why there is no next page: `end_of_list` (nothing more) or `depth_limit` (the action's paging depth `max_rows` is reached). null while `has_more` is true."}}},"partial":{"type":"boolean","description":"true = some fan-out targets failed"},"missed":{"type":"array","items":{"type":"string"},"description":"Targets that could not be fetched (present when partial)"},"billing":{"type":"object","description":"What this single call actually cost and why.","properties":{"charged":{"type":"boolean","description":"false = refunded (empty result) or unlimited account"},"credits":{"type":"integer","description":"Credits actually deducted (1 credit = USD 0.00001389)"},"cny":{"type":"number","description":"Same amount converted to CNY at the current rate"},"list_price_credits":{"type":"integer","description":"Undiscounted price for this call"},"tier_credits":{"type":"integer","description":"Platform tier unit price"},"units":{"type":"integer","description":"Number of targets billed (fan-out actions only)"},"discount_rate":{"type":"number","description":"Present only when a discount applied, e.g. 0.7"},"reason":{"type":"string","description":"Present only when not charged"},"amount":{"type":"object","nullable":true,"description":"What this call cost, as a money envelope (USD in `display.USD`)","properties":{"credits":{"type":"integer"},"base":{"type":"string"},"amount":{"type":"number"},"display":{"type":"object","additionalProperties":{"type":"number"}},"per_1k":{"type":"object","additionalProperties":{"type":"number"}},"rate_source":{"type":"string"}}},"charged_usd":{"type":"number","nullable":true,"description":"What this call actually cost, in USD (0 when refunded or not charged; null when the outcome is still under review)"},"balance_after_usd":{"type":"number","nullable":true,"description":"Wallet balance (paid + bonus) right after this call settled, in USD; null if it could not be read. Full account summary: GET /api/v1/account"}},"required":["charged","credits","cny"]},"quota":{"type":"object","properties":{"remaining_cny":{"type":"number","nullable":true},"remaining_credits":{"type":"integer","nullable":true},"remaining":{"type":"object","nullable":true,"description":"Wallet balance after this call as a money envelope (USD in `display.USD`); null if it could not be read","properties":{"credits":{"type":"integer"},"base":{"type":"string"},"amount":{"type":"number"},"display":{"type":"object","additionalProperties":{"type":"number"}},"per_1k":{"type":"object","additionalProperties":{"type":"number"}},"rate_source":{"type":"string"}}}}},"async_hint":{"type":"string","description":"Present on every synchronous success except for the sync-only batch actions (see POST /api/v1/social). It reminds you the same request can be sent with {\"mode\":\"async\"} in the body to get 202 + job_id immediately instead of waiting — poll GET /api/v1/jobs/{job_id}."}},"required":["id","platform","action","billing","quota"],"additionalProperties":true}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"x-ratelimit-limit-requests":{"description":"Requests per minute allowed (account, or the key's own lower limit when that is tighter)","schema":{"type":"string"}},"x-ratelimit-remaining-requests":{"description":"Requests left in the current minute","schema":{"type":"string"}},"x-ratelimit-reset-requests":{"description":"Seconds until the minute resets, e.g. `42s`","schema":{"type":"string"}}}},"202":{"description":"Accepted — async job started, poll job_id","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Request id — the same value as the `X-Request-Id` header and, on errors, `error.request_id`. Quote it when reporting a problem."},"platform":{"type":"string"},"action":{"type":"string"},"status":{"type":"string","enum":["submitting","running","finalizing","succeeded","failed","submit_unknown"],"description":"`running` for a new job; `succeeded` when the result was ready at submission (the first GET of poll_url returns it). A replayed submission (`replayed: true`) reports that job's current status."},"job_id":{"type":"string"},"poll_url":{"type":"string","description":"GET this until status is succeeded or failed"},"replayed":{"type":"boolean","description":"Present (true) when this request matched an earlier async submission — same `Idempotency-Key`, or no key and the same parameters within the same 5-minute window — and returns that job instead of starting and charging a new one. A job that failed and was refunded (or never charged) is not replayed: a new job starts instead."},"billing":{"type":"object","description":"What this single call actually cost and why.","properties":{"charged":{"type":"boolean","description":"false = refunded (empty result) or unlimited account"},"credits":{"type":"integer","description":"Credits actually deducted (1 credit = USD 0.00001389)"},"cny":{"type":"number","description":"Same amount converted to CNY at the current rate"},"list_price_credits":{"type":"integer","description":"Undiscounted price for this call"},"tier_credits":{"type":"integer","description":"Platform tier unit price"},"units":{"type":"integer","description":"Number of targets billed (fan-out actions only)"},"discount_rate":{"type":"number","description":"Present only when a discount applied, e.g. 0.7"},"reason":{"type":"string","description":"Present only when not charged"},"amount":{"type":"object","nullable":true,"description":"What this call cost, as a money envelope (USD in `display.USD`)","properties":{"credits":{"type":"integer"},"base":{"type":"string"},"amount":{"type":"number"},"display":{"type":"object","additionalProperties":{"type":"number"}},"per_1k":{"type":"object","additionalProperties":{"type":"number"}},"rate_source":{"type":"string"}}},"charged_usd":{"type":"number","nullable":true,"description":"What this call actually cost, in USD (0 when refunded or not charged; null when the outcome is still under review)"},"balance_after_usd":{"type":"number","nullable":true,"description":"Wallet balance (paid + bonus) right after this call settled, in USD; null if it could not be read. Full account summary: GET /api/v1/account"}},"required":["charged","credits","cny"]},"quota":{"type":"object","properties":{"remaining_cny":{"type":"number","nullable":true},"remaining_credits":{"type":"integer","nullable":true},"remaining":{"type":"object","nullable":true,"description":"Wallet balance after this call as a money envelope (USD in `display.USD`); null if it could not be read","properties":{"credits":{"type":"integer"},"base":{"type":"string"},"amount":{"type":"number"},"display":{"type":"object","additionalProperties":{"type":"number"}},"per_1k":{"type":"object","additionalProperties":{"type":"number"}},"rate_source":{"type":"string"}}}}}},"required":["id","job_id","poll_url","status"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"x-ratelimit-limit-requests":{"description":"Requests per minute allowed (account, or the key's own lower limit when that is tighter)","schema":{"type":"string"}},"x-ratelimit-remaining-requests":{"description":"Requests left in the current minute","schema":{"type":"string"}},"x-ratelimit-reset-requests":{"description":"Seconds until the minute resets, e.g. `42s`","schema":{"type":"string"}}}},"400":{"description":"Unknown platform/action (`unknown_capability`). `error.did_you_mean` holds the did-you-mean, `error.allowed` the platform's actions (or every platform), `error.catalog_url` where to read them.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"401":{"description":"`missing_key` (no key), `invalid_key` (unknown or revoked) or `expired_key`. Send `Authorization: Bearer <API_KEY>`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"402":{"description":"Insufficient quota — top up to continue","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"403":{"description":"`account_disabled`, or the key's own limits exclude this request (`scope_denied`, `ip_denied`).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"409":{"description":"`idempotency_conflict` — this `Idempotency-Key` was used for different params in the last 24 hours; `idempotency_in_progress` — the first request with this key is still running, retry after Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"422":{"description":"`missing_param`, `unknown_param` or `invalid_value` (also invalid page tokens). `error.param` names the parameter, `error.did_you_mean` the suggestions and `error.allowed` the valid parameters or values. `error.reason: temporary_link` means a temporary WeChat search-result link was passed — open the article and use its own link; not charged.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"429":{"description":"Rate limited. Where the catalog `supply_note` states a per-account daily cap, `error.reason: daily_cap_reached` means that cap was reached — not charged; honour Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"x-ratelimit-limit-requests":{"description":"Requests per minute allowed (account, or the key's own lower limit when that is tighter)","schema":{"type":"string"}},"x-ratelimit-remaining-requests":{"description":"Requests left in the current minute","schema":{"type":"string"}},"x-ratelimit-reset-requests":{"description":"Seconds until the minute resets, e.g. `42s`","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}},"503":{"description":"Temporarily unavailable, or the sync call exceeded the 85s budget (`timeout`) — nothing charged; the message names the concrete next step (smaller `limit`, or retry the same request with `\"mode\": \"async\"`). `error.reason: capacity_exhausted` means no capacity right now — not charged or refunded; honour Retry-After (`error.retry_after`). `error.reason: temporarily_unavailable` means the capability is marked temporarily unavailable in the catalog while we restore it — refused before charging; honour Retry-After.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}}}}},"/api/v1/account":{"get":{"operationId":"account","summary":"Balance, discount tier, rate limit and 24h usage for this API key","description":"Read-only and free: not charged and not counted against your per-minute limit. Works with any API key regardless of its product-line scope. Amounts are USD. Every paid response also carries `billing.balance_after_usd`, so you can track the balance without calling this endpoint after every request. Responses are private (`Cache-Control: private, no-store`).","tags":["Account"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Account summary","content":{"application/json":{"schema":{"type":"object","required":["object","currency","balance","rate_limit","key","usage_24h","as_of"],"properties":{"object":{"type":"string","enum":["account"]},"currency":{"type":"string","enum":["USD"]},"balance":{"type":"object","description":"Wallet balance. Bonus balance is spent first.","properties":{"total_usd":{"type":"number"},"paid_usd":{"type":"number"},"bonus_usd":{"type":"number"},"bonus_expiring":{"type":"array","description":"Time-limited bonus not yet expired","items":{"type":"object","properties":{"amount_usd":{"type":"number"},"expires_at":{"type":"string","format":"date-time","nullable":true}}}}}},"discount":{"type":"object","nullable":true,"description":"Monthly top-up discount, based on top-ups credited in the current calendar month (Beijing time), at face value: 10% off from USD 500; 20% off from USD 1,000; 30% off from USD 2,000 — applies from the next call once reached and resets on the 1st; credit codes and bonuses do not count. null when your prices are set by a reseller plan.","properties":{"month":{"type":"string","example":"2026-10"},"timezone":{"type":"string","example":"Asia/Shanghai"},"month_topup_usd":{"type":"number"},"rate":{"type":"number","description":"Current price multiplier, 1.0 = no discount"},"next":{"type":"object","nullable":true,"description":"null at the top tier","properties":{"rate":{"type":"number"},"threshold_usd":{"type":"number"},"gap_usd":{"type":"number"}}},"tiers":{"type":"array","items":{"type":"object","properties":{"threshold_usd":{"type":"number"},"rate":{"type":"number"}}}}}},"rate_limit":{"type":"object","description":"Requests per minute for paid calls, shared by every key on the account. The AI API has its own tiers.","properties":{"scope":{"type":"string","enum":["account"]},"requests_per_minute":{"type":"integer"},"key_requests_per_minute":{"type":"integer","description":"What this key can use (lower if the key has its own cap)"},"source":{"type":"string","enum":["default","package","gift","recharge","provider"]},"package":{"type":"object","nullable":true,"properties":{"requests_per_minute":{"type":"integer"},"expires_at":{"type":"string","format":"date-time","nullable":true},"active":{"type":"boolean"}}},"gift":{"type":"object","nullable":true,"properties":{"requests_per_minute":{"type":"integer"},"expires_at":{"type":"string","format":"date-time","nullable":true},"active":{"type":"boolean"}}},"recharge":{"type":"object","nullable":true,"description":"Tier unlocked by cumulative top-ups","properties":{"requests_per_minute":{"type":"integer"},"next":{"type":"object","nullable":true,"properties":{"requests_per_minute":{"type":"integer"},"threshold_usd":{"type":"number"},"gap_usd":{"type":"number"}}}}}}},"key":{"type":"object","description":"The API key used for this request","properties":{"id":{"type":"string"},"name":{"type":"string"},"prefix":{"type":"string","description":"Masked key fragment"},"created_at":{"type":"string","format":"date-time","nullable":true},"expires_at":{"type":"string","format":"date-time","nullable":true}}},"usage_24h":{"type":"object","description":"Calls and actual spend (refunds excluded) over the last 24 hours, whole account; `this_key` is this key alone. May lag up to a minute.","properties":{"calls":{"type":"integer"},"succeeded":{"type":"integer"},"failed":{"type":"integer"},"spent_usd":{"type":"number"},"window_hours":{"type":"integer"},"this_key":{"type":"object","properties":{"calls":{"type":"integer"},"succeeded":{"type":"integer"},"failed":{"type":"integer"},"spent_usd":{"type":"number"}}}}},"as_of":{"type":"string","format":"date-time"}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"401":{"description":"Missing or invalid API key (`missing_key`, `invalid_key`, `expired_key`, `key_in_url_not_accepted`)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"403":{"description":"Account disabled, or the request came from an IP outside the key's allowlist","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/api/v1/social/catalog":{"get":{"operationId":"socialCatalog","summary":"List supported platforms & actions","description":"Every supported platform/action pair and its required params.\n\n**Pick the smallest view you need** — the full response is ~370KB:\n- `?compact=1` — all 387 capabilities, minimal fields (~37KB). Best first call for an AI client: enough to issue a correct request without blowing up context.\n- `?platform=<name>` — one platform in full detail (params, allowed values, return fields). Use after you know which platform you want.\n- no params — everything, in full detail.","tags":["Social"],"parameters":[{"name":"compact","in":"query","required":false,"schema":{"type":"string"},"description":"Set to 1 for the minimal actionable view (~37KB instead of ~370KB)."},{"name":"platform","in":"query","required":false,"schema":{"type":"string"},"description":"Only this platform's capabilities, e.g. xiaohongshu."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Set to meanings to append the shared field glossary."}],"responses":{"200":{"description":"Catalog of capabilities","content":{"application/json":{"schema":{"type":"object","properties":{"platforms":{"type":"array","items":{"type":"string"}},"capabilities":{"type":"array","items":{"type":"object","properties":{"platform":{"type":"string"},"action":{"type":"string"},"action_label":{"type":"string","description":"面向人的能力名称；请求仍传 action 机器键"},"required_params":{"type":"array","items":{"type":"string"}},"optional_params":{"type":"array","items":{"type":"string"},"description":"Absent when the action takes no optional params"},"mode":{"type":"string","enum":["sync","async"]},"cost_credits":{"type":"integer"},"price_cny":{"type":"number"},"price_usd":{"type":"number","description":"Price per call in USD (`cost_credits` converted exactly); multi-target and `rows_per_unit` actions multiply it"},"rows_per_unit":{"type":"integer","description":"Present when the price is per block of rows: a call is billed one `cost_credits` for every block of this many rows it asks for (`limit`), and blocks it does not fill are not charged."},"available":{"type":"boolean","description":"false = this capability cannot be ordered right now."},"field_note":{"type":"string","description":"Present when some declared response fields are temporarily not returned: which fields come back for now."},"supply_note":{"type":"string","description":"Present only on temporarily unavailable capabilities, when a per-account daily cap is enabled, or when a capability may be temporarily unavailable at peak times: what the restriction is and how it is billed."},"market_products":{"type":"array","description":"Public merchandising groups for this existing capability. These IDs do not replace platform or the API-key scope.","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"}},"required":["id","title"]}},"returns_list":{"type":"boolean"},"param_meanings":{"type":"object","additionalProperties":{"type":"object","properties":{"description":{"type":"string"},"allowed_values":{"type":"array","items":{"type":"string"}}}}},"response_fields":{"type":"array","items":{"type":"string"}},"platform_field_meanings":{"type":"object","additionalProperties":{"type":"string"}},"default_limit":{"type":"integer","description":"Rows fetched when you omit `limit`"},"max_limit":{"type":"integer","description":"`limit` must not exceed this. One call, one charge — we do not bill per page."},"limit_over_max":{"type":"string","enum":["capped"],"description":"Present when a `limit` above `max_limit` is accepted and capped at `max_limit` instead of rejected with 422 (actions whose limit was lowered)."},"page_size":{"type":"integer","description":"Page-based action: each call returns one page of this many rows (fewer on the last page; at most this many when `page_size_varies` is true). When the action also has `pagination`, pass the response's top-level `next_page_token` as `page_token` for the next page; each page is one call. Such actions have no `default_limit` or `max_limit`."},"page_size_varies":{"type":"boolean","description":"Present (true) when the number of rows varies from page to page: a page holds at most `page_size` rows and a short page is not the end. Keep paging while `next_page_token` is set."},"pagination":{"type":"object","description":"Present on list actions that can be paged: send `next_page_token` back as `page_token`.","properties":{"page_token":{"type":"boolean"},"token_ttl_hours":{"type":"integer"},"max_rows":{"type":"integer","description":"How deep the action can be paged"},"sync_max_rows":{"type":"integer","description":"Deeper pages must be requested with mode=async (422 async_required)"}}},"limit_ignored":{"type":"boolean","description":"Present (true) on page-based actions: `limit` is accepted for compatibility and has no effect."}},"required":["platform","action","action_label","required_params","mode","cost_credits","price_cny","available"]}}},"required":["platforms","capabilities"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/api/v1/search":{"post":{"operationId":"search","summary":"Search the web — 18 tools, one key","description":"One endpoint, many retrieval **mechanisms**. Pick a `tool`; each tool is a different way of finding things, not a different vendor.\n\n**Why mechanism matters:** keyword engines and embedding search recall different documents — they often disagree, and that disagreement is signal. Two keyword engines mostly agree *and are wrong together*.\n\n- `crosscheck` — runs several mechanism-distinct chains in parallel and layers sources by how many mechanisms independently found them. Answers **how much to trust this**, not just what was found. Billed per mechanism that actually ran; if none did, it is free.\n- `web` / `news` / `scholar` / `places` / `shopping` / `media` / `lens` / `suggest` — keyword retrieval, each scoped to a different corpus.\n- `semantic` — embedding search. Describe what you want in a sentence; **do not stack keywords**. Finds sources whose titles don't contain your terms.\n- `deep` — search with full-text excerpts. `similar` — more pages like a URL.\n- `forum` — real-person discussion. When vendor docs say \"supported\" and forums say \"but it breaks when…\", trust the specific scenario.\n- `read` / `map` / `crawl` — fetch one page, list a site, or crawl many.\n- `harvest` — structured scraping (long-running: seconds to minutes).\n\nUnknown or non-applicable params are **rejected with 422**, never silently dropped. Call `GET /api/v1/search/tools` for the live catalog.","tags":["Search"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["tool"],"properties":{"tool":{"type":"string","enum":["crawl","crosscheck","deep","forum","harvest","lens","map","media","news","places","read","scholar","semantic","shopping","similar","suggest","web"],"description":"Which retrieval mechanism to use.\n\n- `crawl` — Crawls several pages of one site and returns their text; say in natural language which kinds of pages you want · params: url, num, instructions · USD 0.000694/call (USD 0.69/1K)\n- `crosscheck` — Runs one question through several retrieval chains that work in different ways, ranks the sources by how many mechanisms found them, then fetches the original text of the top-ranked sources. It answers how far a conclusion can be trusted, and when not to trust it, rather than just what was found · params: q, num, since, read_top, depth, mechanisms; depth ∈ {quick, standard, deep} · USD 0.002778/call (USD 2.78/1K)\n- `deep` — In-depth search with a text summary per result; full=true also returns the full text · params: q, num, full · USD 0.000694/call (USD 0.69/1K)\n- `forum` — Searches discussions written by real people. When official docs say something is supported and forums say it has pitfalls, go by the forum's concrete account: it is evidence independent of the official wording · params: q, num, sites · USD 0.000694/call (USD 0.69/1K)\n- `harvest` — Structured site extraction (long-running): takes from a dozen seconds to several minutes. Use it only when crawl cannot get the data · params: target, fields, num · USD 0.000694/call (USD 0.69/1K)\n- `lens` — Reverse image search: give the URL of an image and get the pages that use it. The opposite direction of media · params: url, num · USD 0.000694/call (USD 0.69/1K)\n- `map` — Lists a site's page structure: URLs only, no page text, fast · params: url, num · USD 0.000694/call (USD 0.69/1K)\n- `media` — Find images and videos by keyword · params: q, kind, num; kind ∈ {image, video} · USD 0.000694/call (USD 0.69/1K)\n- `news` — News search · params: q, num · USD 0.000694/call (USD 0.69/1K)\n- `places` — Places and local business search · params: q, location, num · USD 0.000694/call (USD 0.69/1K)\n- `read` — Fetches the main text of a URL. If one fetching method cannot read the page, the next one is tried automatically · params: url · USD 0.000694/call (USD 0.69/1K)\n- `scholar` — Academic literature search. kind=patents switches to patent search (publication number, applicant, inventor, filing and publication dates) · params: q, num, kind; kind ∈ {papers, patents} · USD 0.000694/call (USD 0.69/1K)\n- `semantic` — Semantic search: describe what you are looking for in one natural-language sentence instead of stacking keywords. It finds deep sources whose titles do not contain your query words. mode=deep searches deeper, slower and at a higher price · params: q, num, mode; mode ∈ {quick, deep} · USD 0.000694/call (USD 0.69/1K)\n- `shopping` — Product search and price comparison · params: q, num · USD 0.000694/call (USD 0.69/1K)\n- `similar` — Give a URL and find semantically similar pages, which keyword search cannot do · params: url, num · USD 0.000694/call (USD 0.69/1K)\n- `suggest` — Search autocomplete suggestions · params: q · USD 0.000694/call (USD 0.69/1K)\n- `web` — General web search with site restriction, location, date window and paging · params: q, site, location, after, before, page, num · USD 0.000694/call (USD 0.69/1K)"},"params":{"type":"object","additionalProperties":true,"description":"Tool-specific parameters. Params may also be passed flat alongside `tool`.\n\n⚠ **Unknown params are rejected with 422**, listing what this tool accepts — they are never silently ignored, because a silently ignored param means you paid for a query you did not ask for."}},"example":{"tool":"crosscheck","params":{"q":"does prompt caching reduce cost","depth":"standard"}},"oneOf":[{"type":"object","properties":{"tool":{"type":"string","enum":["crawl"]},"params":{"type":"object","properties":{"url":{"type":"string","minLength":1},"num":{},"instructions":{}},"required":["url"],"additionalProperties":false}},"required":["tool","params"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["crawl"]},"url":{"type":"string","minLength":1},"num":{},"instructions":{}},"required":["tool","url"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["crosscheck"]},"params":{"type":"object","properties":{"q":{"type":"string","minLength":1},"num":{},"since":{},"read_top":{},"depth":{"enum":["quick","standard","deep"]},"mechanisms":{}},"required":["q"],"additionalProperties":false}},"required":["tool","params"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["crosscheck"]},"q":{"type":"string","minLength":1},"num":{},"since":{},"read_top":{},"depth":{"enum":["quick","standard","deep"]},"mechanisms":{}},"required":["tool","q"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["deep"]},"params":{"type":"object","properties":{"q":{"type":"string","minLength":1},"num":{},"full":{}},"required":["q"],"additionalProperties":false}},"required":["tool","params"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["deep"]},"q":{"type":"string","minLength":1},"num":{},"full":{}},"required":["tool","q"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["forum"]},"params":{"type":"object","properties":{"q":{"type":"string","minLength":1},"num":{},"sites":{}},"required":["q"],"additionalProperties":false}},"required":["tool","params"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["forum"]},"q":{"type":"string","minLength":1},"num":{},"sites":{}},"required":["tool","q"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["harvest"]},"params":{"type":"object","properties":{"target":{"type":"string","minLength":1},"fields":{},"num":{}},"required":["target"],"additionalProperties":false}},"required":["tool","params"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["harvest"]},"target":{"type":"string","minLength":1},"fields":{},"num":{}},"required":["tool","target"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["lens"]},"params":{"type":"object","properties":{"url":{"type":"string","minLength":1},"num":{}},"required":["url"],"additionalProperties":false}},"required":["tool","params"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["lens"]},"url":{"type":"string","minLength":1},"num":{}},"required":["tool","url"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["map"]},"params":{"type":"object","properties":{"url":{"type":"string","minLength":1},"num":{}},"required":["url"],"additionalProperties":false}},"required":["tool","params"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["map"]},"url":{"type":"string","minLength":1},"num":{}},"required":["tool","url"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["media"]},"params":{"type":"object","properties":{"q":{"type":"string","minLength":1},"kind":{"enum":["image","video"]},"num":{}},"required":["q"],"additionalProperties":false}},"required":["tool","params"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["media"]},"q":{"type":"string","minLength":1},"kind":{"enum":["image","video"]},"num":{}},"required":["tool","q"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["news"]},"params":{"type":"object","properties":{"q":{"type":"string","minLength":1},"num":{}},"required":["q"],"additionalProperties":false}},"required":["tool","params"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["news"]},"q":{"type":"string","minLength":1},"num":{}},"required":["tool","q"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["places"]},"params":{"type":"object","properties":{"q":{"type":"string","minLength":1},"location":{},"num":{}},"required":["q"],"additionalProperties":false}},"required":["tool","params"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["places"]},"q":{"type":"string","minLength":1},"location":{},"num":{}},"required":["tool","q"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["read"]},"params":{"type":"object","properties":{"url":{"type":"string","minLength":1}},"required":["url"],"additionalProperties":false}},"required":["tool","params"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["read"]},"url":{"type":"string","minLength":1}},"required":["tool","url"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["scholar"]},"params":{"type":"object","properties":{"q":{"type":"string","minLength":1},"num":{},"kind":{"enum":["papers","patents"]}},"required":["q"],"additionalProperties":false}},"required":["tool","params"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["scholar"]},"q":{"type":"string","minLength":1},"num":{},"kind":{"enum":["papers","patents"]}},"required":["tool","q"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["semantic"]},"params":{"type":"object","properties":{"q":{"type":"string","minLength":1},"num":{},"mode":{"enum":["quick","deep"]}},"required":["q"],"additionalProperties":false}},"required":["tool","params"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["semantic"]},"q":{"type":"string","minLength":1},"num":{},"mode":{"enum":["quick","deep"]}},"required":["tool","q"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["shopping"]},"params":{"type":"object","properties":{"q":{"type":"string","minLength":1},"num":{}},"required":["q"],"additionalProperties":false}},"required":["tool","params"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["shopping"]},"q":{"type":"string","minLength":1},"num":{}},"required":["tool","q"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["similar"]},"params":{"type":"object","properties":{"url":{"type":"string","minLength":1},"num":{}},"required":["url"],"additionalProperties":false}},"required":["tool","params"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["similar"]},"url":{"type":"string","minLength":1},"num":{}},"required":["tool","url"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["suggest"]},"params":{"type":"object","properties":{"q":{"type":"string","minLength":1}},"required":["q"],"additionalProperties":false}},"required":["tool","params"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["suggest"]},"q":{"type":"string","minLength":1}},"required":["tool","q"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["web"]},"params":{"type":"object","properties":{"q":{"type":"string","minLength":1},"site":{},"location":{},"after":{},"before":{},"page":{},"num":{}},"required":["q"],"additionalProperties":false}},"required":["tool","params"],"additionalProperties":false},{"type":"object","properties":{"tool":{"type":"string","enum":["web"]},"q":{"type":"string","minLength":1},"site":{},"location":{},"after":{},"before":{},"page":{},"num":{}},"required":["tool","q"],"additionalProperties":false}]}}}},"responses":{"200":{"description":"Search results","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Request id — the same value as the `X-Request-Id` header and, on errors, `error.request_id`. Quote it when reporting a problem."},"tool":{"type":"string"},"results":{"type":"array","description":"Normalised hits. `harvest` returns the raw structured rows instead (optionally projected via its `fields` param).","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"snippet":{"type":"string"},"published":{"type":"string"},"content":{"type":"string","description":"Full or excerpted page text, when the tool returns it."}}}},"answer":{"type":"string","description":"Present only for tools that return one."},"billing":{"type":"object","description":"What this single call actually cost and why.","properties":{"charged":{"type":"boolean","description":"false = refunded (empty result) or unlimited account"},"credits":{"type":"integer","description":"Credits actually deducted (1 credit = USD 0.00001389)"},"cny":{"type":"number","description":"Same amount converted to CNY at the current rate"},"list_price_credits":{"type":"integer","description":"Undiscounted price for this call"},"tier_credits":{"type":"integer","description":"Platform tier unit price"},"units":{"type":"integer","description":"Number of targets billed (fan-out actions only)"},"discount_rate":{"type":"number","description":"Present only when a discount applied, e.g. 0.7"},"reason":{"type":"string","description":"Present only when not charged"},"amount":{"type":"object","nullable":true,"description":"What this call cost, as a money envelope (USD in `display.USD`)","properties":{"credits":{"type":"integer"},"base":{"type":"string"},"amount":{"type":"number"},"display":{"type":"object","additionalProperties":{"type":"number"}},"per_1k":{"type":"object","additionalProperties":{"type":"number"}},"rate_source":{"type":"string"}}},"charged_usd":{"type":"number","nullable":true,"description":"What this call actually cost, in USD (0 when refunded or not charged; null when the outcome is still under review)"},"balance_after_usd":{"type":"number","nullable":true,"description":"Wallet balance (paid + bonus) right after this call settled, in USD; null if it could not be read. Full account summary: GET /api/v1/account"}},"required":["charged","credits","cny"]},"quota":{"type":"object","properties":{"remaining_cny":{"type":"number","nullable":true},"remaining_credits":{"type":"integer","nullable":true},"remaining":{"type":"object","nullable":true,"description":"Wallet balance after this call as a money envelope (USD in `display.USD`); null if it could not be read","properties":{"credits":{"type":"integer"},"base":{"type":"string"},"amount":{"type":"number"},"display":{"type":"object","additionalProperties":{"type":"number"}},"per_1k":{"type":"object","additionalProperties":{"type":"number"}},"rate_source":{"type":"string"}}}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"x-ratelimit-limit-requests":{"description":"Requests per minute allowed (account, or the key's own lower limit when that is tighter)","schema":{"type":"string"}},"x-ratelimit-remaining-requests":{"description":"Requests left in the current minute","schema":{"type":"string"}},"x-ratelimit-reset-requests":{"description":"Seconds until the minute resets, e.g. `42s`","schema":{"type":"string"}}}},"401":{"description":"`unauthorized` (no key), `invalid_key` or `expired_key`","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"402":{"description":"Insufficient balance","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"422":{"description":"`unknown_tool`, `unknown_param`, `invalid_value` or `missing_param` — the message lists what is accepted; `error.param`, `error.did_you_mean` and `error.allowed` carry the same machine-readably","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"x-ratelimit-limit-requests":{"description":"Requests per minute allowed (account, or the key's own lower limit when that is tighter)","schema":{"type":"string"}},"x-ratelimit-remaining-requests":{"description":"Requests left in the current minute","schema":{"type":"string"}},"x-ratelimit-reset-requests":{"description":"Seconds until the minute resets, e.g. `42s`","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}}}}},"/api/v1/search/tools":{"get":{"operationId":"searchTools","summary":"List search tools & pricing","description":"Every tool, what it is good at, its params and price. Free, no auth. Small enough to read in full — start here rather than guessing tool names.","tags":["Search"],"responses":{"200":{"description":"Tool catalog","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"unit_price_cny":{"type":"number"},"tools":{"type":"array","items":{"type":"object"},"description":"One entry per tool: what it does, its params and its price."}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/api/v1/captcha":{"post":{"operationId":"solveCaptcha","summary":"Solve a captcha","description":"Submit a captcha, get the solution. Synchronous — the call returns when it is solved.\n\n**Charged per successful solve. Failures are never charged.**\n\n`type` picks the captcha kind; required params differ per type — `GET /api/v1/captcha/types` lists them and is free to call.\n\nThe `solution` shape also depends on the type: a single token for most, a cookie string for the ones that work by session, recognised text for image types, several named fields for the multi-part ones, click coordinates for the geometric ones, or grid-cell indices for the reCAPTCHA image grid. `solution.shape` in the types catalog tells you which to expect **before** you call.","tags":["Captcha"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Solved","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Request id — the same value as the `X-Request-Id` header and, on errors, `error.request_id`. Quote it when reporting a problem."},"type":{"type":"string"},"token":{"type":"string","description":"Present only for scalar solutions (token / cookie / text). Multi-field and coordinate types carry everything in `solution`."},"solution":{"type":"object","additionalProperties":true,"description":"Shape depends on the captcha type — see /api/v1/captcha/types."},"billing":{"type":"object","description":"What this single call actually cost and why.","properties":{"charged":{"type":"boolean","description":"false = refunded (empty result) or unlimited account"},"credits":{"type":"integer","description":"Credits actually deducted (1 credit = USD 0.00001389)"},"cny":{"type":"number","description":"Same amount converted to CNY at the current rate"},"list_price_credits":{"type":"integer","description":"Undiscounted price for this call"},"tier_credits":{"type":"integer","description":"Platform tier unit price"},"units":{"type":"integer","description":"Number of targets billed (fan-out actions only)"},"discount_rate":{"type":"number","description":"Present only when a discount applied, e.g. 0.7"},"reason":{"type":"string","description":"Present only when not charged"},"amount":{"type":"object","nullable":true,"description":"What this call cost, as a money envelope (USD in `display.USD`)","properties":{"credits":{"type":"integer"},"base":{"type":"string"},"amount":{"type":"number"},"display":{"type":"object","additionalProperties":{"type":"number"}},"per_1k":{"type":"object","additionalProperties":{"type":"number"}},"rate_source":{"type":"string"}}},"charged_usd":{"type":"number","nullable":true,"description":"What this call actually cost, in USD (0 when refunded or not charged; null when the outcome is still under review)"},"balance_after_usd":{"type":"number","nullable":true,"description":"Wallet balance (paid + bonus) right after this call settled, in USD; null if it could not be read. Full account summary: GET /api/v1/account"}},"required":["charged","credits","cny"]},"quota":{"type":"object","properties":{"remaining_cny":{"type":"number","nullable":true},"remaining_credits":{"type":"integer","nullable":true},"remaining":{"type":"object","nullable":true,"description":"Wallet balance after this call as a money envelope (USD in `display.USD`); null if it could not be read","properties":{"credits":{"type":"integer"},"base":{"type":"string"},"amount":{"type":"number"},"display":{"type":"object","additionalProperties":{"type":"number"}},"per_1k":{"type":"object","additionalProperties":{"type":"number"}},"rate_source":{"type":"string"}}}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"x-ratelimit-limit-requests":{"description":"Requests per minute allowed (account, or the key's own lower limit when that is tighter)","schema":{"type":"string"}},"x-ratelimit-remaining-requests":{"description":"Requests left in the current minute","schema":{"type":"string"}},"x-ratelimit-reset-requests":{"description":"Seconds until the minute resets, e.g. `42s`","schema":{"type":"string"}}}},"401":{"description":"`unauthorized` (no key), `invalid_key` or `expired_key`","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"402":{"description":"Insufficient balance","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"422":{"description":"`unknown_capability` (type), `unknown_param`, `invalid_value` or `missing_param`; `error.param`, `error.did_you_mean` and `error.allowed` carry the fix machine-readably","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"503":{"description":"No capacity for this type right now — not charged","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["akamai_bmp"]},"package_name":{"type":"string"},"app_version":{"type":"string"},"platform":{"type":"string","enum":["android","ios"]},"count":{"type":"number"}},"required":["type","package_name"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["akamai_sec_cpt"]},"sec_cpt":{"type":"string"},"sec_json":{"type":"object"}},"required":["type","sec_cpt","sec_json"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["akamai_web"]},"website_url":{"type":"string"},"user_agent":{"type":"string"}},"required":["type","website_url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["alibaba"]},"website_url":{"type":"string"}},"required":["type","website_url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["altcha"]},"challenge":{"type":"object"},"challenge_url":{"type":"string"},"website_url":{"type":"string"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["anubis"]},"website_url":{"type":"string"},"proxy":{"type":"string"}},"required":["type","website_url","proxy"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["atb_captcha"]},"website_url":{"type":"string"},"app_id":{"type":"string"},"api_server":{"type":"string"}},"required":["type","website_url","app_id","api_server"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["audio"]},"body":{"type":"string"},"language":{"type":"string","enum":["en","fr","de","el","pt","ru"]}},"required":["type","body"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["aws_waf"]},"website_url":{"type":"string"}},"required":["type","website_url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["aws_waf_classify"]},"images":{"type":"object"},"question":{"type":"string"}},"required":["type","images","question"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["basilisk"]},"website_url":{"type":"string"},"website_key":{"type":"string"}},"required":["type","website_url","website_key"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["binance"]},"validate_id":{"type":"string"},"biz_id":{"type":"string"},"website_url":{"type":"string"},"website_key":{"type":"string"}},"required":["type","validate_id"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["botdeflector"]},"body":{"type":"string"}},"required":["type","body"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["bounding_box"]},"body":{"type":"string"},"comment":{"type":"string"}},"required":["type","body"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["captchafox"]},"website_url":{"type":"string"},"website_key":{"type":"string"},"proxy":{"type":"string"},"user_agent":{"type":"string"}},"required":["type","website_url","website_key","proxy"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["capy"]},"website_url":{"type":"string"},"website_key":{"type":"string"},"api_server":{"type":"string"}},"required":["type","website_url","website_key"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["castle"]},"website_url":{"type":"string"},"website_key":{"type":"string"},"metadata":{"type":"object"},"count":{"type":"number"},"user_agent":{"type":"string"},"proxy":{"type":"string"}},"required":["type","website_url","website_key","metadata"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["cloudflare_challenge"]},"website_url":{"type":"string"},"proxy":{"type":"string"},"user_agent":{"type":"string"}},"required":["type","website_url","proxy"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["coordinates"]},"body":{"type":"string"},"comment":{"type":"string"}},"required":["type","body"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["cutcaptcha"]},"website_url":{"type":"string"},"misery_key":{"type":"string"},"captcha_api_key":{"type":"string"}},"required":["type","website_url","misery_key","captcha_api_key"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["cybersiara"]},"website_url":{"type":"string"},"master_url_id":{"type":"string"},"user_agent":{"type":"string"}},"required":["type","website_url","master_url_id"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["datadome"]},"captcha_url":{"type":"string"},"user_agent":{"type":"string"},"proxy":{"type":"string"},"website_url":{"type":"string"}},"required":["type","captcha_url","user_agent","proxy"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["datadome_interstitial"]},"website_url":{"type":"string"},"proxy":{"type":"string"},"user_agent":{"type":"string"}},"required":["type","website_url","proxy"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["f5_shape"]},"website_url":{"type":"string"},"proxy":{"type":"string"},"user_agent":{"type":"string"}},"required":["type","website_url","proxy"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["f5_tspd"]},"website_url":{"type":"string"},"proxy":{"type":"string"},"user_agent":{"type":"string"}},"required":["type","website_url","proxy"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["friendly_captcha"]},"website_url":{"type":"string"},"website_key":{"type":"string"},"api_get_lib":{"type":"string"}},"required":["type","website_url","website_key"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["funcaptcha"]},"website_url":{"type":"string"},"website_key":{"type":"string"},"api_subdomain":{"type":"string"},"blob":{"type":"string"}},"required":["type","website_url","website_key"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["geetest"]},"website_url":{"type":"string"},"website_key":{"type":"string"},"risk_type":{"type":"string"}},"required":["type","website_url","website_key"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["hcaptcha"]},"website_url":{"type":"string"},"website_key":{"type":"string"},"invisible":{"type":"boolean"}},"required":["type","website_url","website_key"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["hunt"]},"website_url":{"type":"string"}},"required":["type","website_url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["image"]},"body":{"type":"string"},"case_sensitive":{"type":"boolean"},"charset":{"type":"string","enum":["any","digits"]},"math":{"type":"boolean"}},"required":["type","body"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["imperva"]},"website_url":{"type":"string"},"proxy":{"type":"string"},"user_agent":{"type":"string"}},"required":["type","website_url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["kasada"]},"website_url":{"type":"string"},"proxy":{"type":"string"},"bootstrap_url":{"type":"string"},"website_domain":{"type":"string"},"cf_cookies":{"type":"object"}},"required":["type","website_url","proxy"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["kasada_cd"]},"platform_inputs":{"type":"string"},"site":{"type":"string"},"challenge_key":{"type":"string"},"session_token":{"type":"string"},"session_timestamp":{"type":"string"},"dynamic_config":{"type":"string"}},"required":["type","platform_inputs"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["lemin"]},"website_url":{"type":"string"},"website_key":{"type":"string"},"div_id":{"type":"string"},"api_server":{"type":"string"}},"required":["type","website_url","website_key"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["mtcaptcha"]},"website_url":{"type":"string"},"website_key":{"type":"string"}},"required":["type","website_url","website_key"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["perimeterx"]},"website_url":{"type":"string"},"proxy":{"type":"string"},"user_agent":{"type":"string"},"website_key":{"type":"string"}},"required":["type","website_url","proxy"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["prosopo"]},"website_url":{"type":"string"},"website_key":{"type":"string"}},"required":["type","website_url","website_key"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["recaptcha_grid"]},"body":{"type":"string"},"question":{"type":"string"}},"required":["type","body","question"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["recaptcha_v2"]},"website_url":{"type":"string"},"website_key":{"type":"string"},"invisible":{"type":"boolean"},"data_s":{"type":"string"},"page_action":{"type":"string"},"api_domain":{"type":"string","enum":["www.google.com","www.recaptcha.net"]}},"required":["type","website_url","website_key"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["recaptcha_v2_enterprise"]},"website_url":{"type":"string"},"website_key":{"type":"string"},"enterprise_payload":{"type":"object"},"page_action":{"type":"string"},"invisible":{"type":"boolean"},"api_domain":{"type":"string","enum":["www.google.com","www.recaptcha.net"]}},"required":["type","website_url","website_key"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["recaptcha_v3"]},"website_url":{"type":"string"},"website_key":{"type":"string"},"page_action":{"type":"string"},"min_score":{"type":"number","enum":[0.3,0.7,0.9]},"api_domain":{"type":"string","enum":["www.google.com","www.recaptcha.net"]},"invisible":{"type":"boolean"},"enterprise_payload":{"type":"object"}},"required":["type","website_url","website_key"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["recaptcha_v3_enterprise"]},"website_url":{"type":"string"},"website_key":{"type":"string"},"page_action":{"type":"string"},"enterprise_payload":{"type":"object"},"api_domain":{"type":"string","enum":["www.google.com","www.recaptcha.net"]}},"required":["type","website_url","website_key"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["rotate"]},"body":{"type":"string"}},"required":["type","body"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["shein"]},"body":{"type":"string"}},"required":["type","body"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["slider"]},"body":{"type":"string"},"piece":{"type":"string"}},"required":["type","body","piece"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["temu"]},"body":{"type":"string"},"parts":{"type":"object"}},"required":["type","body","parts"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["tencent_tendi"]},"website_url":{"type":"string"},"website_key":{"type":"string"},"captcha_script":{"type":"string"}},"required":["type","website_url","website_key"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["text_captcha"]},"question":{"type":"string"},"language":{"type":"string","enum":["en","ru"]}},"required":["type","question"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["turnstile"]},"website_url":{"type":"string"},"website_key":{"type":"string"},"action":{"type":"string"},"cdata":{"type":"string"},"page_data":{"type":"string"}},"required":["type","website_url","website_key"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["yandex_smartcaptcha"]},"website_url":{"type":"string"},"website_key":{"type":"string"}},"required":["type","website_url","website_key"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["yidun"]},"website_url":{"type":"string"},"website_key":{"type":"string"},"captcha_id":{"type":"string"},"user_agent":{"type":"string"}},"required":["type","website_url","website_key"],"additionalProperties":false}]}}}}}},"/api/v1/catalog":{"get":{"operationId":"unifiedCatalog","summary":"One catalog across every product line","description":"Every product line in one envelope with a uniform shape, so you don't have to learn six different catalog formats. Free, no auth.\n\nReturns counts by default — pass `?line=captcha` to expand one line's individual capabilities.\n\n⚠ `sellable` is **three-state**: `true` (buyable now), `false` (listed but not currently available), and `null` (that line's catalog does not report availability — absence of the signal, not absence of capacity). Do not collapse `null` into `false`.\n\n⚠ Line `status` distinguishes `selling` / `empty` (nothing stocked) / `blocked` (stocked but not currently reachable) / `unknown` (availability not reported).","tags":["Discovery"],"parameters":[{"name":"line","in":"query","required":false,"schema":{"type":"string"},"description":"Expand a single line's capabilities."}],"responses":{"200":{"description":"Unified product-line catalog","content":{"application/json":{"schema":{"type":"object"}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/api/v1/captcha/types":{"get":{"operationId":"captchaTypes","summary":"List solvable captcha types & pricing","description":"Every supported type, its required params, the shape of the solution, and the price. Free, no auth.\n\n⚠ `available: false` means we currently have no capacity for that type — it is listed but not sellable right now.","tags":["Captcha"],"responses":{"200":{"description":"Captcha type catalog","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"billing":{"type":"string"},"types":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"available":{"type":"boolean","description":"false = no capacity for this type right now."},"price_credits":{"type":"integer"},"price_cny":{"type":"number"},"price_usd":{"type":"number","description":"Price per successful solve, in USD"},"required_params":{"type":"array","items":{"type":"object"}},"optional_params":{"type":"array","items":{"type":"object"}},"solution":{"type":"object"}}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/api/v1/jobs/{job_id}":{"get":{"operationId":"getJob","summary":"Poll an async job","description":"Fetch an async job: poll until `status` is `succeeded` (rows in `results`) or `failed` (`error.reason`, `error.charged`). `submit_unknown` means the submission could not be confirmed — do not resubmit, follow `next_action`. Polling is free and does not count against the per-minute limit. Jobs are readable with the API key that created them. MCP clients use the `everyinfra_get_job` tool.","tags":["Social"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Job status / result","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Request id — the same value as the `X-Request-Id` header and, on errors, `error.request_id`. Quote it when reporting a problem."},"job_id":{"type":"string"},"status":{"type":"string","enum":["submitting","running","finalizing","succeeded","failed","submit_unknown"],"description":"Keep polling while `submitting`, `running` or `finalizing`. Stop at `succeeded` or `failed`. `submit_unknown`: we could not confirm the submission — do **not** resubmit; read `next_action` and poll again later."},"platform":{"type":"string","description":"Present when status is succeeded"},"action":{"type":"string","description":"Present when status is succeeded"},"results":{"oneOf":[{"type":"array","items":{"type":"object","additionalProperties":true}},{"type":"object","additionalProperties":true}],"description":"Present when status is succeeded — an array for list actions, one object for single-object actions (catalog `returns_list`)"},"count":{"type":"integer","description":"Rows in `results` (list actions, succeeded)"},"next_page_token":{"type":["string","null"],"description":"Present on actions that can be paged (catalog `pagination`). Send the same request with `page_token` set to this value for the next page; null on the last page. Opaque, tied to your account and this request, valid for 24 hours."},"pagination":{"type":"object","description":"Present on actions that can be paged (catalog `pagination`).","properties":{"page":{"type":"integer","description":"The page just returned, starting at 1"},"has_more":{"type":"boolean"},"stop_reason":{"type":["string","null"],"enum":["end_of_list","depth_limit",null],"description":"Why there is no next page: `end_of_list` (nothing more) or `depth_limit` (the action's paging depth `max_rows` is reached). null while `has_more` is true."}}},"billing_state":{"type":"string","enum":["charged","not_applicable","unknown"],"description":"Whether the job's charge stands"},"refund_state":{"type":"string","enum":["refunded","partially_refunded","not_applicable","unknown"],"description":"`refunded` once a failed or empty job was refunded; `partially_refunded` when blocks of a `rows_per_unit` action were not filled; `unknown` while unconfirmed"},"refunded_credits":{"type":"integer","description":"Present when partially_refunded"},"billed_units":{"type":"integer","description":"Present when partially_refunded"},"requested_units":{"type":"integer","description":"Present when partially_refunded"},"rows_per_unit":{"type":"integer","description":"Present when partially_refunded"},"submission_outcome":{"type":"string","enum":["unknown","under_review"],"description":"Present when status is submit_unknown"},"next_action":{"type":"string","description":"Present when status is submit_unknown: what to do (never resubmit)"},"error":{"type":"object","description":"Present when status is failed","properties":{"code":{"type":"string","enum":["job_failed"]},"message":{"type":"string"},"reason":{"type":"string","enum":["capacity_exhausted","timeout","upstream_failed"]},"charged":{"type":"boolean","nullable":true,"description":"false once refunded; null while unconfirmed"},"retry_after":{"type":"integer","description":"Seconds; set when capacity ran out or the capability is temporarily unavailable"}}}},"required":["id","job_id","status","billing_state","refund_state"],"additionalProperties":true}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"404":{"description":"Job not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/api/v1/chat/completions":{"post":{"operationId":"chatCompletions","summary":"AI chat completions (OpenAI-compatible, free for accounts that have topped up)","description":"OpenAI-compatible text completions, with or without streaming (`stream: true` returns server-sent events in the OpenAI format). Free for accounts that have topped up: nothing is deducted from the balance. Any input — the content does not have to come from EveryInfra and there is no required format. It is meant for organizing and cleaning the data you collect with EveryInfra. Rate limit per account, all API keys combined: cumulative top-ups under USD 100: 50 requests/minute, 5 in flight; USD 100 or more: 500 requests/minute, 50 in flight; USD 500 or more: 5,000 requests/minute, 500 in flight; over the limit returns 429 with `Retry-After`. The limits are ceilings, not promised throughput: when the service is busy you get 503 `ai_busy` with `Retry-After`. Accounts that have not topped up get 403 `ai_topup_required`. The default model is `gemini-3.6-flash`, a fast general-purpose text model for bulk sentiment labeling, topic classification, summarization and structured extraction; `GET /api/v1/models` lists the current models. Requests whose `messages` exceed 45,000 characters in total are rejected with 422 `input_too_large`; split long documents into smaller requests. Point any OpenAI SDK at base URL `https://api.everyinfra.com/api/v1`. Responses carry `x-ratelimit-limit-requests` and `x-ratelimit-remaining-requests`.","tags":["AI"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["messages"],"properties":{"model":{"type":"string","example":"gemini-3.6-flash","default":"gemini-3.6-flash","description":"Available model IDs: gemini-3.6-flash / gemini-flash-lite"},"messages":{"type":"array","description":"OpenAI-style chat messages","items":{"type":"object","properties":{"role":{"type":"string","example":"user"},"content":{"type":"string","example":"Hello!"}}}},"temperature":{"type":"number","example":0.7},"stream":{"type":"boolean","default":false,"description":"true streams the answer as server-sent events (`data: {chunk}` lines, ending with `data: [DONE]`), the same format as OpenAI."},"stream_options":{"type":"object","properties":{"include_usage":{"type":"boolean"}},"description":"With `include_usage: true` the last chunk carries `usage`."}},"additionalProperties":true}}}},"responses":{"200":{"description":"Chat completion (OpenAI format); with `stream: true`, `text/event-stream` chunks ending with `data: [DONE]`","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"object":{"type":"string","enum":["chat.completion"]},"created":{"type":"integer"},"model":{"type":"string"},"choices":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer"},"message":{"type":"object","properties":{"role":{"type":"string"},"content":{"type":"string"}}},"finish_reason":{"type":"string"}}}},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"integer"},"completion_tokens":{"type":"integer"},"total_tokens":{"type":"integer"}}}},"required":["id","object","model","choices"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"400":{"description":"The model could not process the request (`ai_request_rejected`)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"401":{"description":"Invalid or missing API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"403":{"description":"The account has not topped up (`ai_topup_required`), AI access is paused for the account (`ai_disabled`), or the key may not use this model","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"422":{"description":"Unknown `model` (with a did-you-mean), `messages` missing, or its combined content exceeds 45,000 characters (`input_too_large`)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"429":{"description":"Per-minute limit or in-flight limit of the account reached; see `Retry-After`","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}},"503":{"description":"AI busy (`ai_busy`) or temporarily unavailable (`ai_unavailable`); see `Retry-After`","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}}}}},"/api/v1/models":{"get":{"operationId":"listModels","summary":"List AI models (OpenAI-compatible)","description":"List the current AI model IDs. Default: gemini-3.6-flash. No API key needed.","tags":["AI"],"responses":{"200":{"description":"Model list (OpenAI format)","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"default_model":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"object":{"type":"string"},"owned_by":{"type":"string"}}}}},"required":["object","data"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/api/v1/social/availability":{"get":{"operationId":"socialAvailability","summary":"Capability availability","description":"Health of each data capability: level and health in percent for the last 24 hours with hourly buckets and for the last 30 days with daily buckets, plus the average time. Call counts are not published. Not an SLA.\n\nNo API key needed. Snapshots refresh every 5 (24h) or 10 (30d) minutes; if the observations cannot be read the answer is 503, never an assumed status.","tags":["Social"],"security":[],"parameters":[{"name":"platform","in":"query","required":true,"schema":{"type":"string"},"description":"Platform, e.g. `taobao`."},{"name":"action","in":"query","required":false,"schema":{"type":"string"},"description":"One capability; omit it to get every capability of the platform."}],"responses":{"200":{"description":"One capability (`availability`) or every capability of the platform (`availability.list`)","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["availability","availability.list"]},"checked_at":{"type":"string","format":"date-time"},"stale":{"type":"boolean","description":"true = an older snapshot served while a refresh failed"},"capabilities":{"type":"array","items":{"type":"object","properties":{"platform":{"type":"string"},"action":{"type":"string"},"supply":{"type":["string","null"],"enum":["unavailable","peak",null],"description":"Same statement as the catalog `supply_note`: `unavailable` = temporarily unavailable while we restore it (calls are refused with 503 `unavailable`, error.reason `temporarily_unavailable`, and Retry-After; not charged); `peak` = may be temporarily unavailable at peak times (failed calls are not charged); null = no statement"},"level":{"type":"string","enum":["healthy","available","limited","down","normal"],"description":"`normal` = working normally; no health percent for that period"},"score_24h":{"type":["integer","null"],"minimum":0,"maximum":100,"description":"Health in percent; null when the level is `normal`"},"avg_ms_24h":{"type":["integer","null"],"description":"Average time (ms); null when the level is `normal`"},"hourly_24h":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string","format":"date-time"},"level":{"type":"string","enum":["healthy","available","limited","down","normal"],"description":"`normal` = working normally; no health percent for that period"},"score":{"type":["integer","null"],"minimum":0,"maximum":100,"description":"Health in percent; null when the level is `normal`"},"avg_ms":{"type":["integer","null"],"description":"Average time (ms); null when the level is `normal`"},"partial":{"type":"boolean"}}},"description":"24 hourly UTC buckets, oldest first; the last is partial"},"daily_30d":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string","format":"date-time"},"level":{"type":"string","enum":["healthy","available","limited","down","normal"],"description":"`normal` = working normally; no health percent for that period"},"score":{"type":["integer","null"],"minimum":0,"maximum":100,"description":"Health in percent; null when the level is `normal`"},"avg_ms":{"type":["integer","null"],"description":"Average time (ms); null when the level is `normal`"},"partial":{"type":"boolean"}}},"description":"30 daily UTC buckets, oldest first; the last is partial"}}},"description":"Present when `action` is omitted"},"overall":{"type":"object","description":"Present when `action` is omitted: the platform as a whole; scores are health in percent","properties":{"level":{"type":"string","enum":["healthy","available","limited","down","normal"],"description":"`normal` = working normally; no health percent for that period"},"score_24h":{"type":["integer","null"],"minimum":0,"maximum":100,"description":"Health in percent; null when the level is `normal`"},"daily_30d":{"type":"array","description":"30 daily UTC buckets, oldest first; the last is partial","items":{"type":"object","properties":{"start":{"type":"string","format":"date-time"},"level":{"type":"string","enum":["healthy","available","limited","down","normal"],"description":"`normal` = working normally; no health percent for that period"},"score":{"type":["integer","null"],"minimum":0,"maximum":100,"description":"Health in percent; null when the level is `normal`"},"partial":{"type":"boolean"}}}}}},"platform":{"type":"string"},"action":{"type":"string"},"supply":{"type":["string","null"],"enum":["unavailable","peak",null],"description":"Same statement as the catalog `supply_note`: `unavailable` = temporarily unavailable while we restore it (calls are refused with 503 `unavailable`, error.reason `temporarily_unavailable`, and Retry-After; not charged); `peak` = may be temporarily unavailable at peak times (failed calls are not charged); null = no statement"},"level":{"type":"string","enum":["healthy","available","limited","down","normal"],"description":"`normal` = working normally; no health percent for that period"},"score_24h":{"type":["integer","null"],"minimum":0,"maximum":100,"description":"Health in percent; null when the level is `normal`"},"avg_ms_24h":{"type":["integer","null"],"description":"Average time (ms); null when the level is `normal`"},"hourly_24h":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string","format":"date-time"},"level":{"type":"string","enum":["healthy","available","limited","down","normal"],"description":"`normal` = working normally; no health percent for that period"},"score":{"type":["integer","null"],"minimum":0,"maximum":100,"description":"Health in percent; null when the level is `normal`"},"avg_ms":{"type":["integer","null"],"description":"Average time (ms); null when the level is `normal`"},"partial":{"type":"boolean"}}},"description":"24 hourly UTC buckets, oldest first; the last is partial"},"daily_30d":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string","format":"date-time"},"level":{"type":"string","enum":["healthy","available","limited","down","normal"],"description":"`normal` = working normally; no health percent for that period"},"score":{"type":["integer","null"],"minimum":0,"maximum":100,"description":"Health in percent; null when the level is `normal`"},"avg_ms":{"type":["integer","null"],"description":"Average time (ms); null when the level is `normal`"},"partial":{"type":"boolean"}}},"description":"30 daily UTC buckets, oldest first; the last is partial"}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"404":{"description":"Unknown platform or capability (with a did-you-mean suggestion)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"422":{"description":"`platform` missing, or an unknown query parameter (with a did-you-mean suggestion)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"429":{"description":"Rate limited — retry after the Retry-After delay","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}},"503":{"description":"Observations cannot be read right now; no status is implied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}}}}},"/api/v1/availability/summary":{"get":{"operationId":"availabilitySummary","summary":"Availability of everything at once (status page)","description":"The last 24 hours for every data capability and every product-line item in one response: level and health in percent. Each platform and product line also carries its overall level and how many entries sit at each level. Call counts are not published. Not an SLA.\n\nNo API key needed. Hourly and daily history: `GET /api/v1/social/availability` and `GET /api/v1/availability`.","tags":["Availability"],"security":[],"parameters":[],"responses":{"200":{"description":"Every data platform and product line","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["availability.summary"]},"window":{"type":"string","enum":["24h"]},"checked_at":{"type":"string","format":"date-time"},"stale":{"type":"boolean","description":"true = an older snapshot served while a refresh failed"},"totals":{"type":"object","properties":{"items":{"type":"integer","description":"Data capabilities plus product-line items listed below"},"level":{"type":"string","enum":["healthy","available","limited","down","normal"],"description":"The overall level of everything listed"},"by_level":{"type":"object","description":"How many capabilities or items are at each level (not call counts)","properties":{"healthy":{"type":"integer"},"available":{"type":"integer"},"limited":{"type":"integer"},"down":{"type":"integer"},"normal":{"type":"integer"}}},"unavailable":{"type":"integer","description":"Data capabilities marked temporarily unavailable"}}},"platforms":{"type":"array","description":"Every data platform","items":{"type":"object","properties":{"platform":{"type":"string"},"level":{"type":"string","enum":["healthy","available","limited","down","normal"],"description":"The overall level of the group"},"by_level":{"type":"object","description":"How many capabilities or items are at each level (not call counts)","properties":{"healthy":{"type":"integer"},"available":{"type":"integer"},"limited":{"type":"integer"},"down":{"type":"integer"},"normal":{"type":"integer"}}},"capabilities":{"type":"array","items":{"type":"object","properties":{"action":{"type":"string"},"supply":{"type":["string","null"],"enum":["unavailable","peak",null],"description":"Same statement as the catalog `supply_note`: `unavailable` = temporarily unavailable while we restore it (calls are refused with 503 `unavailable`, error.reason `temporarily_unavailable`, and Retry-After; not charged); `peak` = may be temporarily unavailable at peak times (failed calls are not charged); null = no statement"},"level":{"type":"string","enum":["healthy","available","limited","down","normal"],"description":"`normal` = working normally; no health percent for that period"},"score_24h":{"type":["integer","null"],"minimum":0,"maximum":100,"description":"Health in percent; null when the level is `normal`"}}}}}}},"lines":{"type":"array","description":"Search, AI, captcha, SMS, email and proxy","items":{"type":"object","properties":{"line":{"type":"string"},"level":{"type":"string","enum":["healthy","available","limited","down","normal"],"description":"The overall level of the group"},"by_level":{"type":"object","description":"How many capabilities or items are at each level (not call counts)","properties":{"healthy":{"type":"integer"},"available":{"type":"integer"},"limited":{"type":"integer"},"down":{"type":"integer"},"normal":{"type":"integer"}}},"items":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"level":{"type":"string","enum":["healthy","available","limited","down","normal"],"description":"`normal` = working normally; no health percent for that period"},"score_24h":{"type":["integer","null"],"minimum":0,"maximum":100,"description":"Health in percent; null when the level is `normal`"}}}}}}},"unread_lines":{"type":"array","items":{"type":"string"},"description":"Product lines that could not be read right now: no status is implied"}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"422":{"description":"A query parameter was sent: this endpoint takes none","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"429":{"description":"Rate limited — retry after the Retry-After delay","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}},"503":{"description":"Availability cannot be read right now — no status is implied; retry after the Retry-After delay","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}}}}},"/api/v1/availability":{"get":{"operationId":"lineAvailability","summary":"Product availability (search, AI, captcha, SMS, email, proxy)","description":"The same health view as `GET /api/v1/social/availability`, for the other product lines: each search tool, each AI model, captcha types, SMS numbers and rentals, email sending and proxy orders: level and health in percent for the last 24 hours (hourly) and 30 days (daily), plus the average time. Call counts are not published. Not an SLA.\n\nNo API key needed. For data APIs use `GET /api/v1/social/availability`.","tags":["Availability"],"security":[],"parameters":[{"name":"line","in":"query","required":true,"schema":{"type":"string","enum":["search","ai","sms","email","proxy","captcha"]},"description":"Product line."},{"name":"item","in":"query","required":false,"schema":{"type":"string"},"description":"One item, e.g. a search tool (`web`), an AI model (`chat:gemini-3.6-flash`) or a captcha type; omit it to get every item of the line."}],"responses":{"200":{"description":"One item (`availability`) or every item of the line (`availability.list`)","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["availability","availability.list"]},"checked_at":{"type":"string","format":"date-time"},"stale":{"type":"boolean","description":"true = an older snapshot served while a refresh failed"},"items":{"type":"array","items":{"type":"object","properties":{"line":{"type":"string"},"item":{"type":"string"},"level":{"type":"string","enum":["healthy","available","limited","down","normal"],"description":"`normal` = working normally; no health percent for that period"},"score_24h":{"type":["integer","null"],"minimum":0,"maximum":100,"description":"Health in percent; null when the level is `normal`"},"avg_ms_24h":{"type":["integer","null"],"description":"Average time (ms); null when the level is `normal`"},"hourly_24h":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string","format":"date-time"},"level":{"type":"string","enum":["healthy","available","limited","down","normal"],"description":"`normal` = working normally; no health percent for that period"},"score":{"type":["integer","null"],"minimum":0,"maximum":100,"description":"Health in percent; null when the level is `normal`"},"avg_ms":{"type":["integer","null"],"description":"Average time (ms); null when the level is `normal`"},"partial":{"type":"boolean"}}},"description":"24 hourly UTC buckets, oldest first; the last is partial"},"daily_30d":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string","format":"date-time"},"level":{"type":"string","enum":["healthy","available","limited","down","normal"],"description":"`normal` = working normally; no health percent for that period"},"score":{"type":["integer","null"],"minimum":0,"maximum":100,"description":"Health in percent; null when the level is `normal`"},"avg_ms":{"type":["integer","null"],"description":"Average time (ms); null when the level is `normal`"},"partial":{"type":"boolean"}}},"description":"30 daily UTC buckets, oldest first; the last is partial"}}},"description":"Present when `item` is omitted"},"line":{"type":"string"},"item":{"type":"string"},"level":{"type":"string","enum":["healthy","available","limited","down","normal"],"description":"`normal` = working normally; no health percent for that period"},"score_24h":{"type":["integer","null"],"minimum":0,"maximum":100,"description":"Health in percent; null when the level is `normal`"},"avg_ms_24h":{"type":["integer","null"],"description":"Average time (ms); null when the level is `normal`"},"hourly_24h":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string","format":"date-time"},"level":{"type":"string","enum":["healthy","available","limited","down","normal"],"description":"`normal` = working normally; no health percent for that period"},"score":{"type":["integer","null"],"minimum":0,"maximum":100,"description":"Health in percent; null when the level is `normal`"},"avg_ms":{"type":["integer","null"],"description":"Average time (ms); null when the level is `normal`"},"partial":{"type":"boolean"}}},"description":"24 hourly UTC buckets, oldest first; the last is partial"},"daily_30d":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string","format":"date-time"},"level":{"type":"string","enum":["healthy","available","limited","down","normal"],"description":"`normal` = working normally; no health percent for that period"},"score":{"type":["integer","null"],"minimum":0,"maximum":100,"description":"Health in percent; null when the level is `normal`"},"avg_ms":{"type":["integer","null"],"description":"Average time (ms); null when the level is `normal`"},"partial":{"type":"boolean"}}},"description":"30 daily UTC buckets, oldest first; the last is partial"}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"410":{"description":"The item is retired (general-purpose chat)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"422":{"description":"`line` missing or unknown, unknown `item`, or an unknown query parameter (with a did-you-mean suggestion)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"429":{"description":"Rate limited — retry after the Retry-After delay","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}},"503":{"description":"Observations cannot be read right now; no status is implied","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}}}}},"/api/v1/social/fields":{"get":{"operationId":"socialFields","summary":"Field dictionary","description":"What every returned field means. No params = the full cross-platform dictionary; `platform` (optionally with `action`) narrows it to the fields that capability actually returns.\n\nLong-tail platform-specific fields are listed under `undocumented` **without invented meanings** — those keep their original platform semantics.","tags":["Social"],"security":[],"parameters":[{"name":"platform","in":"query","required":false,"schema":{"type":"string"},"description":"Narrow to one platform."},{"name":"action","in":"query","required":false,"schema":{"type":"string"},"description":"Narrow further to one capability (needs `platform`)."}],"responses":{"200":{"description":"Field dictionary","content":{"application/json":{"schema":{"type":"object","description":"Field meanings","properties":{"items":{"type":"array","items":{"type":"object"}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/api/v1/sms/catalog":{"get":{"operationId":"smsCatalog","summary":"One-time SMS catalog & pricing","description":"Services, countries and prices for one-time numbers. Free, no auth.","tags":["SMS"],"security":[],"responses":{"200":{"description":"Catalog","content":{"application/json":{"schema":{"type":"object","description":"One-time SMS services","properties":{"items":{"type":"array","items":{"type":"object"}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/api/v1/sms/number":{"post":{"operationId":"smsNumber","summary":"Rent a one-time number","description":"Get a number. **Not charged here** — you are charged only when a code actually arrives (`GET /api/v1/sms/code/{order_id}`).","tags":["SMS"],"responses":{"200":{"description":"Order created","content":{"application/json":{"schema":{"type":"object","properties":{"order_id":{"type":"string"},"phone":{"type":"string","description":"The number you received"},"country":{"type":"string"},"service":{"type":"string"},"status":{"type":"string","enum":["pending","received","cancelled","expired"]},"expires_at":{"type":"string","format":"date-time"}},"required":["order_id","status"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"402":{"description":"Insufficient balance","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"country":{"type":"string","minLength":1},"product":{"type":"string","minLength":1},"service":{"type":"string","minLength":1},"voice":{"type":"boolean"},"reuse":{"type":"boolean"}},"required":["country"],"additionalProperties":false,"anyOf":[{"required":["product"]},{"required":["service"]}]}}}}}},"/api/v1/sms/code/{order_id}":{"get":{"operationId":"smsCode","summary":"Poll for the SMS code","description":"Poll until the code arrives. **Charged on success only** — no code, no charge.","tags":["SMS"],"parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Code, or still waiting","content":{"application/json":{"schema":{"type":"object","properties":{"order_id":{"type":"string"},"status":{"type":"string","enum":["pending","received","expired"]},"code":{"type":"string","description":"Present only when status = received"},"text":{"type":"string","description":"Full message body, when available"},"billing":{"type":"object","description":"What this single call actually cost and why.","properties":{"charged":{"type":"boolean","description":"false = refunded (empty result) or unlimited account"},"credits":{"type":"integer","description":"Credits actually deducted (1 credit = USD 0.00001389)"},"cny":{"type":"number","description":"Same amount converted to CNY at the current rate"},"list_price_credits":{"type":"integer","description":"Undiscounted price for this call"},"tier_credits":{"type":"integer","description":"Platform tier unit price"},"units":{"type":"integer","description":"Number of targets billed (fan-out actions only)"},"discount_rate":{"type":"number","description":"Present only when a discount applied, e.g. 0.7"},"reason":{"type":"string","description":"Present only when not charged"},"amount":{"type":"object","nullable":true,"description":"What this call cost, as a money envelope (USD in `display.USD`)","properties":{"credits":{"type":"integer"},"base":{"type":"string"},"amount":{"type":"number"},"display":{"type":"object","additionalProperties":{"type":"number"}},"per_1k":{"type":"object","additionalProperties":{"type":"number"}},"rate_source":{"type":"string"}}},"charged_usd":{"type":"number","nullable":true,"description":"What this call actually cost, in USD (0 when refunded or not charged; null when the outcome is still under review)"},"balance_after_usd":{"type":"number","nullable":true,"description":"Wallet balance (paid + bonus) right after this call settled, in USD; null if it could not be read. Full account summary: GET /api/v1/account"}},"required":["charged","credits","cny"]}},"required":["order_id","status"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"402":{"description":"Insufficient balance","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"404":{"description":"Unknown order","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/api/v1/sms/cancel/{order_id}":{"post":{"operationId":"smsCancel","summary":"Cancel a one-time order","description":"Release the number before a code arrives. Never charged.","tags":["SMS"],"parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Cancelled","content":{"application/json":{"schema":{"type":"object","properties":{"order_id":{"type":"string"},"phone":{"type":"string","description":"The number you received"},"country":{"type":"string"},"service":{"type":"string"},"status":{"type":"string","enum":["pending","received","cancelled","expired"]},"expires_at":{"type":"string","format":"date-time"}},"required":["order_id","status"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"404":{"description":"Unknown order","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/api/v1/sms/rental/catalog":{"get":{"operationId":"smsRentalCatalog","summary":"Long-term rental catalog & pricing","description":"Rental durations, countries and prices. Free, no auth.","tags":["SMS"],"security":[],"responses":{"200":{"description":"Rental catalog","content":{"application/json":{"schema":{"type":"object","description":"Rental durations & prices","properties":{"items":{"type":"array","items":{"type":"object"}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/api/v1/sms/rental":{"post":{"operationId":"smsRental","summary":"Rent a number for a period","description":"**Charged on order** (unlike one-time numbers). If we cannot source the number you are refunded automatically.","tags":["SMS"],"responses":{"200":{"description":"Rental created","content":{"application/json":{"schema":{"type":"object","properties":{"order_id":{"type":"string"},"phone":{"type":"string","description":"The number you received"},"country":{"type":"string"},"service":{"type":"string"},"status":{"type":"string","enum":["pending","received","cancelled","expired"]},"expires_at":{"type":"string","format":"date-time"}},"required":["order_id","status"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"402":{"description":"Insufficient balance","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"country":{"type":"string","minLength":1},"term":{"type":"string","minLength":1},"tier":{"type":"string","minLength":1}},"required":["country"],"additionalProperties":false,"anyOf":[{"required":["term"]},{"required":["tier"]}]}}}}}},"/api/v1/sms/rental/{rent_id}":{"get":{"operationId":"smsRentalMessages","summary":"Read messages for a rental","description":"Every SMS received during the rental window. **Not charged** — the rent already paid for this period.","tags":["SMS"],"parameters":[{"name":"rent_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Messages","content":{"application/json":{"schema":{"type":"object","properties":{"message_id":{"type":"string"},"events":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["queued","sent","delivered","opened","clicked","bounced","complained"]},"at":{"type":"string","format":"date-time"}}}}},"required":["message_id","events"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"404":{"description":"Unknown rental","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/api/v1/sms/orders":{"get":{"operationId":"smsOrders","summary":"Your order history","description":"One-time and rental orders for this key. Not charged.","tags":["SMS"],"responses":{"200":{"description":"Orders","content":{"application/json":{"schema":{"type":"object","description":"Your orders","properties":{"items":{"type":"array","items":{"type":"object"}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/api/v1/proxy/catalog":{"get":{"operationId":"proxyCatalog","summary":"Proxy plans & pricing","description":"Available proxy kinds, regions and prices. Free, no auth.","tags":["Proxy"],"security":[],"responses":{"200":{"description":"Catalog","content":{"application/json":{"schema":{"type":"object","description":"Proxy plans & prices","properties":{"items":{"type":"array","items":{"type":"object"}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/api/v1/proxy/order":{"post":{"operationId":"proxyOrder","summary":"Order a proxy plan","description":"Place an order. Credentials are handed over by `GET /api/v1/proxy/order/{order_id}?deliver=1`.","tags":["Proxy"],"responses":{"200":{"description":"Order created","content":{"application/json":{"schema":{"type":"object","properties":{"order_id":{"type":"string"},"status":{"type":"string","enum":["provisioning","delivered","refunded","failed"]},"kind":{"type":"string"},"region":{"type":"string"},"credentials":{"type":"object","description":"Present only after delivery (`?deliver=1`)"},"billing":{"type":"object","description":"What this single call actually cost and why.","properties":{"charged":{"type":"boolean","description":"false = refunded (empty result) or unlimited account"},"credits":{"type":"integer","description":"Credits actually deducted (1 credit = USD 0.00001389)"},"cny":{"type":"number","description":"Same amount converted to CNY at the current rate"},"list_price_credits":{"type":"integer","description":"Undiscounted price for this call"},"tier_credits":{"type":"integer","description":"Platform tier unit price"},"units":{"type":"integer","description":"Number of targets billed (fan-out actions only)"},"discount_rate":{"type":"number","description":"Present only when a discount applied, e.g. 0.7"},"reason":{"type":"string","description":"Present only when not charged"},"amount":{"type":"object","nullable":true,"description":"What this call cost, as a money envelope (USD in `display.USD`)","properties":{"credits":{"type":"integer"},"base":{"type":"string"},"amount":{"type":"number"},"display":{"type":"object","additionalProperties":{"type":"number"}},"per_1k":{"type":"object","additionalProperties":{"type":"number"}},"rate_source":{"type":"string"}}},"charged_usd":{"type":"number","nullable":true,"description":"What this call actually cost, in USD (0 when refunded or not charged; null when the outcome is still under review)"},"balance_after_usd":{"type":"number","nullable":true,"description":"Wallet balance (paid + bonus) right after this call settled, in USD; null if it could not be read. Full account summary: GET /api/v1/account"}},"required":["charged","credits","cny"]}},"required":["order_id","status"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"402":{"description":"Insufficient balance","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"gb":{"oneOf":[{"type":"integer","enum":[1,5,10,50,100]},{"type":"string","enum":["1","5","10","50","100"]}]},"kind":{"type":"string","enum":["residential_rotating","residential_static","residential_extract","residential_unlimited","static_acceleration"]},"region":{"type":"string","pattern":"^[a-zA-Z]{2}$"},"sticky_minutes":{"type":"integer","minimum":1,"maximum":120}},"required":["gb"],"additionalProperties":false}}}}}},"/api/v1/proxy/order/{order_id}":{"get":{"operationId":"proxyOrderStatus","summary":"Order status / fetch credentials","description":"Order status. With `?deliver=1` the credentials are fetched and **you are charged at that moment** — plain status checks are free.\n\nIf your balance is short you get 402; top up and call the same URL again.","tags":["Proxy"],"parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"deliver","in":"query","required":false,"schema":{"type":"integer","enum":[1]},"description":"Set to 1 to fetch credentials (charges on success)."}],"responses":{"200":{"description":"Status or credentials","content":{"application/json":{"schema":{"type":"object","properties":{"order_id":{"type":"string"},"status":{"type":"string","enum":["provisioning","delivered","refunded","failed"]},"kind":{"type":"string"},"region":{"type":"string"},"credentials":{"type":"object","description":"Present only after delivery (`?deliver=1`)"},"billing":{"type":"object","description":"What this single call actually cost and why.","properties":{"charged":{"type":"boolean","description":"false = refunded (empty result) or unlimited account"},"credits":{"type":"integer","description":"Credits actually deducted (1 credit = USD 0.00001389)"},"cny":{"type":"number","description":"Same amount converted to CNY at the current rate"},"list_price_credits":{"type":"integer","description":"Undiscounted price for this call"},"tier_credits":{"type":"integer","description":"Platform tier unit price"},"units":{"type":"integer","description":"Number of targets billed (fan-out actions only)"},"discount_rate":{"type":"number","description":"Present only when a discount applied, e.g. 0.7"},"reason":{"type":"string","description":"Present only when not charged"},"amount":{"type":"object","nullable":true,"description":"What this call cost, as a money envelope (USD in `display.USD`)","properties":{"credits":{"type":"integer"},"base":{"type":"string"},"amount":{"type":"number"},"display":{"type":"object","additionalProperties":{"type":"number"}},"per_1k":{"type":"object","additionalProperties":{"type":"number"}},"rate_source":{"type":"string"}}},"charged_usd":{"type":"number","nullable":true,"description":"What this call actually cost, in USD (0 when refunded or not charged; null when the outcome is still under review)"},"balance_after_usd":{"type":"number","nullable":true,"description":"Wallet balance (paid + bonus) right after this call settled, in USD; null if it could not be read. Full account summary: GET /api/v1/account"}},"required":["charged","credits","cny"]}},"required":["order_id","status"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"402":{"description":"Insufficient balance","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"404":{"description":"Unknown order","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/api/v1/email/catalog":{"get":{"operationId":"emailCatalog","summary":"Email plans & pricing","description":"What we can send and what it costs. Free, no auth.","tags":["Email"],"security":[],"responses":{"200":{"description":"Catalog","content":{"application/json":{"schema":{"type":"object","description":"Email plans & prices","properties":{"items":{"type":"array","items":{"type":"object"}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/api/v1/email/usage":{"get":{"operationId":"emailUsage","summary":"Remaining send quota for this key","description":"Quota left and when it resets — check this after a 429.","tags":["Email"],"responses":{"200":{"description":"Quota","content":{"application/json":{"schema":{"type":"object","properties":{"sent":{"type":"integer"},"limit":{"type":"integer"},"remaining":{"type":"integer"},"resets_at":{"type":"string","format":"date-time"}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/api/v1/email/send":{"post":{"operationId":"emailSend","summary":"Send one email","tags":["Email"],"responses":{"200":{"description":"Accepted","content":{"application/json":{"schema":{"type":"object","properties":{"message_id":{"type":"string"},"status":{"type":"string","enum":["queued","scheduled","sent"]},"billing":{"type":"object","description":"What this single call actually cost and why.","properties":{"charged":{"type":"boolean","description":"false = refunded (empty result) or unlimited account"},"credits":{"type":"integer","description":"Credits actually deducted (1 credit = USD 0.00001389)"},"cny":{"type":"number","description":"Same amount converted to CNY at the current rate"},"list_price_credits":{"type":"integer","description":"Undiscounted price for this call"},"tier_credits":{"type":"integer","description":"Platform tier unit price"},"units":{"type":"integer","description":"Number of targets billed (fan-out actions only)"},"discount_rate":{"type":"number","description":"Present only when a discount applied, e.g. 0.7"},"reason":{"type":"string","description":"Present only when not charged"},"amount":{"type":"object","nullable":true,"description":"What this call cost, as a money envelope (USD in `display.USD`)","properties":{"credits":{"type":"integer"},"base":{"type":"string"},"amount":{"type":"number"},"display":{"type":"object","additionalProperties":{"type":"number"}},"per_1k":{"type":"object","additionalProperties":{"type":"number"}},"rate_source":{"type":"string"}}},"charged_usd":{"type":"number","nullable":true,"description":"What this call actually cost, in USD (0 when refunded or not charged; null when the outcome is still under review)"},"balance_after_usd":{"type":"number","nullable":true,"description":"Wallet balance (paid + bonus) right after this call settled, in USD; null if it could not be read. Full account summary: GET /api/v1/account"}},"required":["charged","credits","cny"]}},"required":["message_id","status"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"402":{"description":"Insufficient balance","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"429":{"description":"Send quota exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"bcc":{"oneOf":[{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},{"type":"array","items":{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},"minItems":1,"maxItems":5}]},"cc":{"oneOf":[{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},{"type":"array","items":{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},"minItems":1,"maxItems":5}]},"html":{"type":"string","maxLength":100000},"reply_to":{"oneOf":[{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},{"type":"array","items":{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},"minItems":1,"maxItems":5}]},"scheduled_at":{"type":"string","format":"date-time"},"subject":{"type":"string","minLength":1},"text":{"type":"string","maxLength":100000},"to":{"oneOf":[{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},{"type":"array","items":{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},"minItems":1,"maxItems":5}]}},"required":["to","subject"],"additionalProperties":false,"anyOf":[{"required":["text"],"properties":{"text":{"minLength":1}}},{"required":["html"],"properties":{"html":{"minLength":1}}}]}}}}}},"/api/v1/email/batch":{"post":{"operationId":"emailBatch","summary":"Send a batch of emails","description":"Multiple messages in one call. Charged per message.","tags":["Email"],"responses":{"200":{"description":"Accepted","content":{"application/json":{"schema":{"type":"object","properties":{"message_id":{"type":"string"},"status":{"type":"string","enum":["queued","scheduled","sent"]},"billing":{"type":"object","description":"What this single call actually cost and why.","properties":{"charged":{"type":"boolean","description":"false = refunded (empty result) or unlimited account"},"credits":{"type":"integer","description":"Credits actually deducted (1 credit = USD 0.00001389)"},"cny":{"type":"number","description":"Same amount converted to CNY at the current rate"},"list_price_credits":{"type":"integer","description":"Undiscounted price for this call"},"tier_credits":{"type":"integer","description":"Platform tier unit price"},"units":{"type":"integer","description":"Number of targets billed (fan-out actions only)"},"discount_rate":{"type":"number","description":"Present only when a discount applied, e.g. 0.7"},"reason":{"type":"string","description":"Present only when not charged"},"amount":{"type":"object","nullable":true,"description":"What this call cost, as a money envelope (USD in `display.USD`)","properties":{"credits":{"type":"integer"},"base":{"type":"string"},"amount":{"type":"number"},"display":{"type":"object","additionalProperties":{"type":"number"}},"per_1k":{"type":"object","additionalProperties":{"type":"number"}},"rate_source":{"type":"string"}}},"charged_usd":{"type":"number","nullable":true,"description":"What this call actually cost, in USD (0 when refunded or not charged; null when the outcome is still under review)"},"balance_after_usd":{"type":"number","nullable":true,"description":"Wallet balance (paid + bonus) right after this call settled, in USD; null if it could not be read. Full account summary: GET /api/v1/account"}},"required":["charged","credits","cny"]}},"required":["message_id","status"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"402":{"description":"Insufficient balance","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"429":{"description":"Send quota exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"bcc":{"oneOf":[{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},{"type":"array","items":{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},"minItems":1,"maxItems":5}]},"cc":{"oneOf":[{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},{"type":"array","items":{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},"minItems":1,"maxItems":5}]},"html":{"type":"string","maxLength":100000},"reply_to":{"oneOf":[{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},{"type":"array","items":{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},"minItems":1,"maxItems":5}]},"subject":{"type":"string","minLength":1},"text":{"type":"string","maxLength":100000},"to":{"oneOf":[{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},{"type":"array","items":{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},"minItems":1,"maxItems":5}]}},"required":["to","subject"],"additionalProperties":false,"anyOf":[{"required":["text"],"properties":{"text":{"minLength":1}}},{"required":["html"],"properties":{"html":{"minLength":1}}}]},"minItems":1,"maxItems":100},{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"bcc":{"oneOf":[{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},{"type":"array","items":{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},"minItems":1,"maxItems":5}]},"cc":{"oneOf":[{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},{"type":"array","items":{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},"minItems":1,"maxItems":5}]},"html":{"type":"string","maxLength":100000},"reply_to":{"oneOf":[{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},{"type":"array","items":{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},"minItems":1,"maxItems":5}]},"subject":{"type":"string","minLength":1},"text":{"type":"string","maxLength":100000},"to":{"oneOf":[{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},{"type":"array","items":{"type":"string","pattern":"^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},"minItems":1,"maxItems":5}]}},"required":["to","subject"],"additionalProperties":false,"anyOf":[{"required":["text"],"properties":{"text":{"minLength":1}}},{"required":["html"],"properties":{"html":{"minLength":1}}}]},"minItems":1,"maxItems":100}},"required":["messages"],"additionalProperties":false}]}}}}}},"/api/v1/email/cancel/{message_id}":{"post":{"operationId":"emailCancel","summary":"Cancel a scheduled email","description":"Cancels a not-yet-sent scheduled message and refunds it.","tags":["Email"],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Cancelled","content":{"application/json":{"schema":{"type":"object","properties":{"message_id":{"type":"string"},"status":{"type":"string","enum":["queued","scheduled","sent","delivered","bounced","complained","cancelled"]},"to":{"type":"array","items":{"type":"string"}},"subject":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}},"required":["message_id","status"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"404":{"description":"Unknown message","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/api/v1/email/{message_id}":{"get":{"operationId":"emailStatus","summary":"Delivery status of one email","description":"Not charged.","tags":["Email"],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Status","content":{"application/json":{"schema":{"type":"object","properties":{"message_id":{"type":"string"},"status":{"type":"string","enum":["queued","scheduled","sent","delivered","bounced","complained","cancelled"]},"to":{"type":"array","items":{"type":"string"}},"subject":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}},"required":["message_id","status"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"404":{"description":"Unknown message","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/api/v1/email/events/{message_id}":{"get":{"operationId":"emailEvents","summary":"Event stream for one email","description":"Delivery / open / bounce events. Poll this if you have no public webhook endpoint — the product works fine without one.","tags":["Email"],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Events","content":{"application/json":{"schema":{"type":"object","properties":{"message_id":{"type":"string"},"events":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["queued","sent","delivered","opened","clicked","bounced","complained"]},"at":{"type":"string","format":"date-time"}}}}},"required":["message_id","events"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"404":{"description":"Unknown message","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/api/v1/email/webhook":{"put":{"operationId":"emailWebhookSet","summary":"Register an event webhook","description":"Register a callback URL. **The signing secret is returned only once.** Events are signed with `X-EveryInfra-Signature: v1=<hex>`; the signed string is `<timestamp>.<raw body>`, HMAC-SHA256. Verify against the **raw body you received** — re-serialising will not match.","tags":["Email"],"responses":{"200":{"description":"Webhook registered (secret shown once)","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"events":{"type":"array","items":{"type":"string"}},"secret":{"type":"string","description":"Signing secret. **Returned only once** — store it now."}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","pattern":"^https://"},"events":{"type":"array","items":{"type":"string","enum":["email.bounced","email.clicked","email.complained","email.delivered","email.delivery_delayed","email.failed","email.opened","email.scheduled","email.sent","email.suppressed"]}}},"required":["url"],"additionalProperties":false}}}}},"get":{"operationId":"emailWebhookGet","summary":"Read the registered webhook","tags":["Email"],"responses":{"200":{"description":"Webhook config","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"events":{"type":"array","items":{"type":"string"}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}},"delete":{"operationId":"emailWebhookDelete","summary":"Remove the webhook","tags":["Email"],"responses":{"200":{"description":"Removed","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"events":{"type":"array","items":{"type":"string"}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/api/v1/email/domains/add":{"post":{"operationId":"emailDomainAdd","summary":"Add your own sending domain","description":"Disabled by default — contact us before using this.","tags":["Email"],"responses":{"200":{"description":"Domain added","content":{"application/json":{"schema":{"type":"object","description":"Domain status","properties":{"items":{"type":"array","items":{"type":"object"}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"403":{"description":"Not enabled for this account","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"reason":{"type":"string","description":"Optional machine-readable cause, e.g. `capacity_exhausted`, `temporarily_unavailable`, `daily_cap_reached` or `temporary_link`"},"retry_after":{"type":"integer","description":"Optional; seconds, same as Retry-After"},"limit":{"type":"integer","description":"Optional; the cap that was reached"},"param":{"type":"string","description":"Optional; the offending parameter (or `platform` / `action` / `tool` / `type`)"},"did_you_mean":{"type":"array","items":{"type":"string"},"description":"Optional; did-you-mean suggestions for `param`, most likely first"},"candidates":{"type":"array","items":{"type":"string"},"deprecated":true,"description":"Same list as `did_you_mean`, kept for compatibility until 2026-11-30"},"allowed":{"type":"array","items":{"type":"string"},"description":"Optional; every valid value, parameter or action for `param`"},"catalog_url":{"type":"string","description":"Optional; path of the catalog entry that describes this contract"}},"required":["code","message"]}},"required":["error"]}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1}},"required":["name"],"additionalProperties":false}}}}}},"/portal/api/me":{"get":{"operationId":"accountSummary","summary":"Account balance and limits","description":"Balance (total, paid and bonus, plus bonus credit that expires soon), monthly top-up discount, per-minute limit and account status. Amounts are USD envelopes. The email address is not returned to API keys.\n\nNeeds an API key with account scope `account:read`. Full-access keys have the three read scopes (`account:read`, `requests:read`, `billing:read`) by default; keys limited to some product lines do not, until the account owner enables them under API Keys in the console. Not charged; limited to 60 requests per minute per account.","tags":["Account"],"security":[{"bearerAuth":[]}],"parameters":[],"responses":{"200":{"description":"Account balance and limits","content":{"application/json":{"schema":{"type":"object","properties":{"user_id":{"type":"string"},"status":{"type":"string"},"balance":{"type":"object","description":"Amount envelope; `base` is USD.","properties":{"base":{"type":"string"},"amount":{"type":"number"}}},"paid_balance":{"type":"object","description":"Amount envelope; `base` is USD.","properties":{"base":{"type":"string"},"amount":{"type":"number"}}},"bonus_balance":{"type":"object","description":"Amount envelope; `base` is USD.","properties":{"base":{"type":"string"},"amount":{"type":"number"}}},"discount_rate":{"type":"number"},"rps_limit":{"type":"integer"},"wallet_status":{"type":"string","enum":["active","security_hold"]}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"401":{"description":"Missing, invalid, disabled or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"403":{"description":"`account_scope_denied` — the key lacks the account scope this endpoint needs; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"429":{"description":"`rate_limited` — more than 60 account requests in this minute; honour Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}}}}},"/portal/api/keys":{"get":{"operationId":"accountKeys","summary":"API keys on this account","description":"Every key's name, masked prefix, status, product-line and account scopes, per-minute limit and last use. Key secrets are never returned here.\n\nNeeds an API key with account scope `account:read`. Full-access keys have the three read scopes (`account:read`, `requests:read`, `billing:read`) by default; keys limited to some product lines do not, until the account owner enables them under API Keys in the console. Not charged; limited to 60 requests per minute per account.","tags":["Account"],"security":[{"bearerAuth":[]}],"parameters":[],"responses":{"200":{"description":"API keys on this account","content":{"application/json":{"schema":{"type":"object","properties":{"keys":{"type":"array","items":{"type":"object","properties":{"key_id":{"type":"string"},"name":{"type":"string"},"prefix":{"type":"string"},"status":{"type":"string"},"scope_mode":{"type":"string"},"account_scopes":{"type":"array","items":{"type":"string"}},"effective_rpm_limit":{"type":"integer"},"accessed_at":{"type":"string","nullable":true}}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"401":{"description":"Missing, invalid, disabled or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"403":{"description":"`account_scope_denied` — the key lacks the account scope this endpoint needs; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"429":{"description":"`rate_limited` — more than 60 account requests in this minute; honour Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}}}},"post":{"operationId":"accountKeyCreate","summary":"Create a key","description":"Create an API key and return it once. A key created through an API key is never broader than the calling key (capabilities, account read scopes, source IPs, expiry, per-minute limit) and never gets a write scope. At most 20 per account per UTC day.\n\nNeeds an API key with the write scope `keys:write`. Write scopes are off by default and only the account owner can grant them, signed in to the console. Every change made with a key shows up in the console's notifications. Not charged; counted in the same 60 requests per minute per account.","tags":["Account"],"security":[{"bearerAuth":[]}],"parameters":[],"responses":{"200":{"description":"Create a key","content":{"application/json":{"schema":{"type":"object","properties":{"key_id":{"type":"string"},"api_key":{"type":"string"}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"401":{"description":"Missing, invalid, disabled or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"403":{"description":"`account_scope_denied` — the key lacks the account scope this endpoint needs; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"429":{"description":"`rate_limited` — more than 60 account requests in this minute; honour Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}},"422":{"description":"Invalid field; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":60},"note":{"type":"string","maxLength":500},"scope_mode":{"type":"string","enum":["all","selected"]},"scope_rules":{"type":"array","items":{"type":"object"}},"ip_allow":{"type":"array","items":{"type":"string"}},"expires_at":{"type":"string","format":"date-time"},"account_scopes":{"type":"array","items":{"type":"string"}}}}}}}}},"/portal/api/usage":{"get":{"operationId":"accountUsage","summary":"Daily usage","description":"Calls and spend per day over the last `days` days, by product line.\n\nNeeds an API key with account scope `requests:read`. Full-access keys have the three read scopes (`account:read`, `requests:read`, `billing:read`) by default; keys limited to some product lines do not, until the account owner enables them under API Keys in the console. Not charged; limited to 60 requests per minute per account.","tags":["Account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":90,"default":30},"description":"Window in days"}],"responses":{"200":{"description":"Daily usage","content":{"application/json":{"schema":{"type":"object"}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"401":{"description":"Missing, invalid, disabled or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"403":{"description":"`account_scope_denied` — the key lacks the account scope this endpoint needs; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"429":{"description":"`rate_limited` — more than 60 account requests in this minute; honour Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}}}}},"/portal/api/logs":{"get":{"operationId":"accountRequests","summary":"Recent calls","description":"Most recent calls first: request_id, endpoint, status, latency, rows returned, whether it was charged and the amount. Look one up with `GET /portal/api/requests/{request_id}`.\n\nNeeds an API key with account scope `requests:read`. Full-access keys have the three read scopes (`account:read`, `requests:read`, `billing:read`) by default; keys limited to some product lines do not, until the account owner enables them under API Keys in the console. Not charged; limited to 60 requests per minute per account.","tags":["Account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50},"description":"How many calls to return"}],"responses":{"200":{"description":"Recent calls","content":{"application/json":{"schema":{"type":"object","properties":{"logs":{"type":"array","items":{"type":"object","properties":{"ts":{"type":"string"},"request_id":{"type":"string"},"endpoint":{"type":"string"},"status":{"type":"integer"},"amount":{"type":"object","description":"Amount envelope; `base` is USD.","properties":{"base":{"type":"string"},"amount":{"type":"number"}}},"latency_ms":{"type":"number","nullable":true},"items":{"type":"integer","nullable":true},"charged":{"type":"boolean","nullable":true}}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"401":{"description":"Missing, invalid, disabled or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"403":{"description":"`account_scope_denied` — the key lacks the account scope this endpoint needs; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"429":{"description":"`rate_limited` — more than 60 account requests in this minute; honour Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}}}}},"/portal/api/requests/{request_id}":{"get":{"operationId":"accountRequest","summary":"One call by request_id","description":"The call's status, latency, rows and charge, plus how its charge settled (charged, refunded, partially refunded) and the async job it started, if any.\n\nNeeds an API key with account scope `requests:read`. Full-access keys have the three read scopes (`account:read`, `requests:read`, `billing:read`) by default; keys limited to some product lines do not, until the account owner enables them under API Keys in the console. Not charged; limited to 60 requests per minute per account.","tags":["Account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,128}$"},"description":"The X-Request-Id header of the call"}],"responses":{"200":{"description":"One call by request_id","content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string","description":"The X-Request-Id of that call"},"key_id":{"type":"string"},"endpoint":{"type":"string"},"platform":{"type":"string","nullable":true},"action":{"type":"string","nullable":true},"status_code":{"type":"integer"},"error_kind":{"type":"string","nullable":true},"latency_ms":{"type":"number","nullable":true},"items":{"type":"integer","nullable":true},"charged":{"type":"boolean","nullable":true,"description":"null while the outcome of a refund is not confirmed yet"},"amount":{"type":"object","nullable":true,"properties":{"currency":{"type":"string","enum":["USD"]},"value":{"type":"number"}}},"occurred_at":{"type":"string","format":"date-time"},"job_id":{"type":"string","nullable":true},"settlement":{"type":"object","nullable":true,"properties":{"reference":{"type":"string"},"status":{"type":"string","enum":["charged","refunded","refunding","rejected","unknown"]},"original_amount":{"type":"object","nullable":true,"properties":{"currency":{"type":"string","enum":["USD"]},"value":{"type":"number"}}},"refund_status":{"type":"string","enum":["not_applicable","refunded","partially_refunded","unknown"]},"refund_amount":{"type":"object","nullable":true,"properties":{"currency":{"type":"string","enum":["USD"]},"value":{"type":"number"}}}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"401":{"description":"Missing, invalid, disabled or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"403":{"description":"`account_scope_denied` — the key lacks the account scope this endpoint needs; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"429":{"description":"`rate_limited` — more than 60 account requests in this minute; honour Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}},"404":{"description":"No such record on this account (records of other accounts are never visible)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/portal/api/billing":{"get":{"operationId":"accountBilling","summary":"Spend breakdown","description":"Spend by product, free (uncharged) calls and the discount in effect over the last `days` days.\n\nNeeds an API key with account scope `billing:read`. Full-access keys have the three read scopes (`account:read`, `requests:read`, `billing:read`) by default; keys limited to some product lines do not, until the account owner enables them under API Keys in the console. Not charged; limited to 60 requests per minute per account.","tags":["Account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":90,"default":30},"description":"Window in days"}],"responses":{"200":{"description":"Spend breakdown","content":{"application/json":{"schema":{"type":"object"}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"401":{"description":"Missing, invalid, disabled or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"403":{"description":"`account_scope_denied` — the key lacks the account scope this endpoint needs; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"429":{"description":"`rate_limited` — more than 60 account requests in this minute; honour Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}}}}},"/portal/api/ledger":{"get":{"operationId":"accountLedger","summary":"Wallet ledger","description":"Append-only wallet entries, newest first: top-ups, charges, refunds, bonus credit and expiries.\n\nNeeds an API key with account scope `billing:read`. Full-access keys have the three read scopes (`account:read`, `requests:read`, `billing:read`) by default; keys limited to some product lines do not, until the account owner enables them under API Keys in the console. Not charged; limited to 60 requests per minute per account.","tags":["Account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50},"description":"Entries per page"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":100000,"default":0},"description":"Entries to skip"}],"responses":{"200":{"description":"Wallet ledger","content":{"application/json":{"schema":{"type":"object"}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"401":{"description":"Missing, invalid, disabled or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"403":{"description":"`account_scope_denied` — the key lacks the account scope this endpoint needs; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"429":{"description":"`rate_limited` — more than 60 account requests in this minute; honour Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}}}}},"/portal/api/keys/{key_id}":{"patch":{"operationId":"accountKeyUpdate","summary":"Rename or tighten a key","description":"Change name or note, move the expiry earlier. Only keys created through an API key, or the calling key itself; console-created keys can only be disabled.\n\nNeeds an API key with the write scope `keys:write`. Write scopes are off by default and only the account owner can grant them, signed in to the console. Every change made with a key shows up in the console's notifications. Not charged; counted in the same 60 requests per minute per account.","tags":["Account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string"},"description":"From GET /portal/api/keys"}],"responses":{"200":{"description":"Rename or tighten a key","content":{"application/json":{"schema":{"type":"object","properties":{"key_id":{"type":"string"},"status":{"type":"string"}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"401":{"description":"Missing, invalid, disabled or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"403":{"description":"`account_scope_denied` — the key lacks the account scope this endpoint needs; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"429":{"description":"`rate_limited` — more than 60 account requests in this minute; honour Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}},"404":{"description":"No such record on this account (records of other accounts are never visible)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"422":{"description":"Invalid field; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"note":{"type":"string"},"expires_at":{"type":"string","format":"date-time"}}}}}}},"delete":{"operationId":"accountKeyDelete","summary":"Delete a key","description":"Permanently delete a key created through an API key, or the calling key itself.\n\nNeeds an API key with the write scope `keys:write`. Write scopes are off by default and only the account owner can grant them, signed in to the console. Every change made with a key shows up in the console's notifications. Not charged; counted in the same 60 requests per minute per account.","tags":["Account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string"},"description":"From GET /portal/api/keys"}],"responses":{"200":{"description":"Delete a key","content":{"application/json":{"schema":{"type":"object","properties":{"deleted":{"type":"boolean"}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"401":{"description":"Missing, invalid, disabled or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"403":{"description":"`account_scope_denied` — the key lacks the account scope this endpoint needs; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"429":{"description":"`rate_limited` — more than 60 account requests in this minute; honour Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}},"404":{"description":"No such record on this account (records of other accounts are never visible)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"422":{"description":"Invalid field; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/portal/api/keys/{key_id}/disable":{"post":{"operationId":"accountKeyDisable","summary":"Disable a key","description":"Disable any key on the account at once. Only the account owner can enable it again, in the console.\n\nNeeds an API key with the write scope `keys:write`. Write scopes are off by default and only the account owner can grant them, signed in to the console. Every change made with a key shows up in the console's notifications. Not charged; counted in the same 60 requests per minute per account.","tags":["Account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string"},"description":"From GET /portal/api/keys"}],"responses":{"200":{"description":"Disable a key","content":{"application/json":{"schema":{"type":"object","properties":{"key_id":{"type":"string"},"status":{"type":"string"}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"401":{"description":"Missing, invalid, disabled or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"403":{"description":"`account_scope_denied` — the key lacks the account scope this endpoint needs; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"429":{"description":"`rate_limited` — more than 60 account requests in this minute; honour Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}},"404":{"description":"No such record on this account (records of other accounts are never visible)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"422":{"description":"Invalid field; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/portal/api/keys/{key_id}/governance":{"put":{"operationId":"accountKeyLimits","summary":"Lower a key's limits","description":"Lower the per-minute limit or add usage and spend alerts. Through a key, limits can only go down and alerts cannot be turned off.\n\nNeeds an API key with the write scope `keys:write`. Write scopes are off by default and only the account owner can grant them, signed in to the console. Every change made with a key shows up in the console's notifications. Not charged; counted in the same 60 requests per minute per account.","tags":["Account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string"},"description":"From GET /portal/api/keys"}],"responses":{"200":{"description":"Lower a key's limits","content":{"application/json":{"schema":{"type":"object"}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"401":{"description":"Missing, invalid, disabled or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"403":{"description":"`account_scope_denied` — the key lacks the account scope this endpoint needs; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"429":{"description":"`rate_limited` — more than 60 account requests in this minute; honour Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}},"404":{"description":"No such record on this account (records of other accounts are never visible)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"422":{"description":"Invalid field; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rpm_limit":{"type":"integer","minimum":1},"alerts":{"type":"object"}}}}}}}},"/portal/api/preferences":{"get":{"operationId":"accountPreferences","summary":"Account settings","description":"Console language, time zone and notification switches.\n\nNeeds an API key with account scope `account:read`. Full-access keys have the three read scopes (`account:read`, `requests:read`, `billing:read`) by default; keys limited to some product lines do not, until the account owner enables them under API Keys in the console. Not charged; limited to 60 requests per minute per account.","tags":["Account"],"security":[{"bearerAuth":[]}],"parameters":[],"responses":{"200":{"description":"Account settings","content":{"application/json":{"schema":{"type":"object"}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"401":{"description":"Missing, invalid, disabled or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"403":{"description":"`account_scope_denied` — the key lacks the account scope this endpoint needs; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"429":{"description":"`rate_limited` — more than 60 account requests in this minute; honour Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}}}},"patch":{"operationId":"accountPreferencesUpdate","summary":"Change account settings","description":"Language, time zone, notification switches and the low-balance threshold (USD). Security notifications can be turned on but only turned off in the console.\n\nNeeds an API key with the write scope `settings:write`. Write scopes are off by default and only the account owner can grant them, signed in to the console. Every change made with a key shows up in the console's notifications. Not charged; counted in the same 60 requests per minute per account.","tags":["Account"],"security":[{"bearerAuth":[]}],"parameters":[],"responses":{"200":{"description":"Change account settings","content":{"application/json":{"schema":{"type":"object"}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"401":{"description":"Missing, invalid, disabled or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"403":{"description":"`account_scope_denied` — the key lacks the account scope this endpoint needs; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"429":{"description":"`rate_limited` — more than 60 account requests in this minute; honour Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}},"422":{"description":"Invalid field; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"language":{"type":"string","enum":["zh-CN","en","es"]},"timezone":{"type":"string"},"low_balance_threshold_usd":{"type":"number"},"low_balance_notifications":{"type":"boolean"},"billing_notifications":{"type":"boolean"},"security_notifications":{"type":"boolean"},"weekly_usage_digest":{"type":"boolean"}}}}}}}},"/portal/api/webhooks":{"get":{"operationId":"accountWebhook","summary":"Webhook settings","description":"Endpoint, events, balance threshold and signing-secret hint.\n\nNeeds an API key with account scope `account:read`. Full-access keys have the three read scopes (`account:read`, `requests:read`, `billing:read`) by default; keys limited to some product lines do not, until the account owner enables them under API Keys in the console. Not charged; limited to 60 requests per minute per account.","tags":["Account"],"security":[{"bearerAuth":[]}],"parameters":[],"responses":{"200":{"description":"Webhook settings","content":{"application/json":{"schema":{"type":"object"}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"401":{"description":"Missing, invalid, disabled or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"403":{"description":"`account_scope_denied` — the key lacks the account scope this endpoint needs; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"429":{"description":"`rate_limited` — more than 60 account requests in this minute; honour Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}}}},"put":{"operationId":"accountWebhookSet","summary":"Set the webhook","description":"Public HTTPS endpoint and events (`balance.low` with `balance_threshold_usd`, `job.finished`). The signing secret is returned only when the webhook is first created.\n\nNeeds an API key with the write scope `settings:write`. Write scopes are off by default and only the account owner can grant them, signed in to the console. Every change made with a key shows up in the console's notifications. Not charged; counted in the same 60 requests per minute per account.","tags":["Account"],"security":[{"bearerAuth":[]}],"parameters":[],"responses":{"200":{"description":"Set the webhook","content":{"application/json":{"schema":{"type":"object"}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"401":{"description":"Missing, invalid, disabled or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"403":{"description":"`account_scope_denied` — the key lacks the account scope this endpoint needs; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"429":{"description":"`rate_limited` — more than 60 account requests in this minute; honour Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}},"422":{"description":"Invalid field; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url","events"],"properties":{"url":{"type":"string"},"events":{"type":"array","items":{"type":"string"}},"balance_threshold_usd":{"type":"number","minimum":0}}}}}}},"delete":{"operationId":"accountWebhookDelete","summary":"Delete the webhook","description":"Stop deliveries; queued events are cancelled.\n\nNeeds an API key with the write scope `settings:write`. Write scopes are off by default and only the account owner can grant them, signed in to the console. Every change made with a key shows up in the console's notifications. Not charged; counted in the same 60 requests per minute per account.","tags":["Account"],"security":[{"bearerAuth":[]}],"parameters":[],"responses":{"200":{"description":"Delete the webhook","content":{"application/json":{"schema":{"type":"object","properties":{"deleted":{"type":"boolean"}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"401":{"description":"Missing, invalid, disabled or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"403":{"description":"`account_scope_denied` — the key lacks the account scope this endpoint needs; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"429":{"description":"`rate_limited` — more than 60 account requests in this minute; honour Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}},"404":{"description":"No such record on this account (records of other accounts are never visible)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"422":{"description":"Invalid field; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/portal/api/webhooks/test":{"post":{"operationId":"accountWebhookTest","summary":"Send a test webhook","description":"One signed `webhook.test` delivery now, not retried; at most 5 per minute.\n\nNeeds an API key with the write scope `settings:write`. Write scopes are off by default and only the account owner can grant them, signed in to the console. Every change made with a key shows up in the console's notifications. Not charged; counted in the same 60 requests per minute per account.","tags":["Account"],"security":[{"bearerAuth":[]}],"parameters":[],"responses":{"200":{"description":"Send a test webhook","content":{"application/json":{"schema":{"type":"object"}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"401":{"description":"Missing, invalid, disabled or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"403":{"description":"`account_scope_denied` — the key lacks the account scope this endpoint needs; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"429":{"description":"`rate_limited` — more than 60 account requests in this minute; honour Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}},"404":{"description":"No such record on this account (records of other accounts are never visible)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"422":{"description":"Invalid field; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}}}}},"/portal/api/webhooks/deliveries":{"get":{"operationId":"accountWebhookDeliveries","summary":"Recent webhook deliveries","description":"Each event's status, attempts and the last attempt's HTTP status, latency and error kind.\n\nNeeds an API key with account scope `account:read`. Full-access keys have the three read scopes (`account:read`, `requests:read`, `billing:read`) by default; keys limited to some product lines do not, until the account owner enables them under API Keys in the console. Not charged; limited to 60 requests per minute per account.","tags":["Account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":20},"description":"How many"}],"responses":{"200":{"description":"Recent webhook deliveries","content":{"application/json":{"schema":{"type":"object"}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"401":{"description":"Missing, invalid, disabled or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"403":{"description":"`account_scope_denied` — the key lacks the account scope this endpoint needs; the message names it","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}}}},"429":{"description":"`rate_limited` — more than 60 account requests in this minute; honour Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}}}},"headers":{"X-Request-Id":{"description":"Request id; success bodies repeat it as `id`, error bodies as `error.request_id`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying. Always present on the per-minute 429 of data, search, captcha and AI; on 503 when the wait is known (capacity, busy)","schema":{"type":"integer"}}}}}}}}}