{"openapi":"3.1.0","info":{"title":"TrueScrape API","version":"0.1.0","description":"Unified social media data API with a normalised cross-platform schema,\nasync jobs, batching, and change subscriptions.\n\n**Billing guarantees**\n- You are never charged for a failed request.\n- You are never charged for an empty result.\n- Cache hits cost 0 credits.\n- Every endpoint publishes its price as `x-credit-cost` in this spec."},"servers":[{"url":"https://api.truescrape.com","description":"API server"}],"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key"}}},"security":[{"apiKeyAuth":[]}],"tags":[{"name":"amazon"},{"name":"apple-music"},{"name":"bluesky"},{"name":"inference"},{"name":"facebook"},{"name":"github"},{"name":"google"},{"name":"instagram"},{"name":"kick"},{"name":"komi"},{"name":"kwai"},{"name":"linkbio"},{"name":"linkedin"},{"name":"linkme"},{"name":"linktree"},{"name":"pillar"},{"name":"pinterest"},{"name":"reddit"},{"name":"rumble"},{"name":"snapchat"},{"name":"soundcloud"},{"name":"spotify"},{"name":"threads"},{"name":"tiktok"},{"name":"truthsocial"},{"name":"twitch"},{"name":"twitter"},{"name":"youtube"}],"paths":{"/v1/amazon/shop":{"get":{"summary":"Amazon Shop page","description":"A creator's public Amazon storefront: their name, and the product links the page exposes.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"amazon_shop","tags":["amazon"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Storefront URL (https://www.amazon.com/shop/<handle>) or just the handle","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/apple-music/album":{"get":{"summary":"Album details","description":"Public Apple Music album: artist, release date, genre, copyright, artwork and total runtime. The full track listing is in `raw` — add `include_raw=true`.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"appleMusic_album","tags":["apple-music"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"id","in":"query","required":true,"schema":{"description":"Apple Music album id (1708308989) or a music.apple.com album URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/apple-music/artist":{"get":{"summary":"Artist details","description":"Public Apple Music artist page: editorial bio, artist image and genre. Apple publishes no follower or play counts, so those fields are null rather than guessed.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"appleMusic_artist","tags":["apple-music"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"id","in":"query","required":true,"schema":{"description":"Apple Music artist id (159260351) or a music.apple.com artist URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/apple-music/search":{"get":{"summary":"Search","description":"Search the Apple Music catalogue for tracks, albums or artists. Tracks and albums come back as posts; artists come back as creators.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"appleMusic_search","tags":["apple-music"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":false,"parameters":[{"name":"query","in":"query","required":true,"schema":{"description":"Search terms","type":"string"}},{"name":"type","in":"query","required":false,"schema":{"default":"track","type":"string","enum":["track","album","artist"]}},{"name":"limit","in":"query","required":false,"schema":{"default":25,"type":"number"}},{"name":"country","in":"query","required":false,"schema":{"description":"Two-letter storefront, e.g. us, gb, de","default":"us","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/apple-music/track":{"get":{"summary":"Track details","description":"Public Apple Music track: artist, album, duration, genre, release date and the 30-second preview URL.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"appleMusic_track","tags":["apple-music"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"id","in":"query","required":true,"schema":{"description":"Apple Music track id (1833328840), a /song/ URL, or an album URL with ?i=<track id>","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/bluesky/post":{"get":{"summary":"Post","description":"A single public Bluesky post with like, reply, repost and quote counts, plus any attached images or video.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"bluesky_post","tags":["bluesky"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Post URL (https://bsky.app/profile/<handle>/post/<id>) or an at:// URI","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/bluesky/profile":{"get":{"summary":"Profile","description":"Public profile for a Bluesky account: followers, following, post count, bio, avatar, banner, and verification status.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"bluesky_profile","tags":["bluesky"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle (alice.bsky.social), a did:plc:… identifier, or a bsky.app profile URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/bluesky/user/posts":{"get":{"summary":"User posts","description":"Recent public posts from a Bluesky account, newest first. Reposts are excluded by default so the feed reflects what the account actually wrote.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"bluesky_userPosts","tags":["bluesky"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle, did, or bsky.app profile URL","type":"string"}},{"name":"count","in":"query","required":false,"schema":{"default":50,"type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"include_reposts","in":"query","required":false,"schema":{"description":"Include reposts of other accounts. Default false.","type":"boolean"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/detect-age-gender":{"get":{"summary":"Estimate age and gender from an image","description":"Apparent age and gender estimated from a public image URL. This is a model ESTIMATE, not measured platform data, and every response is labelled as such. Requires an inference provider to be configured on the deployment.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"inference_ageGender","tags":["inference"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":false,"x-experimental":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Public image URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/facebook/ad-library/ad":{"get":{"summary":"Ad details","description":"One ad from the Meta Ad Library by its archive id. Meta does not expose the archive as an addressable node for every ad; pass `page_id` as well and we find it by scanning that advertiser's archive instead.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"facebook_ad","tags":["facebook"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"id","in":"query","required":true,"schema":{"description":"Ad archive id, or an Ad Library URL containing `?id=`","type":"string"}},{"name":"page_id","in":"query","required":false,"schema":{"description":"The advertiser's page id. Enables the archive-scan fallback.","type":"string"}},{"name":"country","in":"query","required":false,"schema":{"description":"Reached country used by the fallback scan","default":"US","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/facebook/ad-library/advertisers":{"get":{"summary":"Find advertisers running ads","description":"Distinct advertisers whose ads match a search term, with the `page_id` needed by /v1/facebook/ad-library/page-ads. Derived from the official Ad Library search — Meta has no advertiser-search endpoint of its own.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"facebook_adLibraryAdvertisers","tags":["facebook"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":false,"parameters":[{"name":"query","in":"query","required":true,"schema":{"description":"Advertiser name or a term from their ad copy","type":"string"}},{"name":"country","in":"query","required":false,"schema":{"default":"US","type":"string"}},{"name":"status","in":"query","required":false,"schema":{"default":"active","type":"string","enum":["active","inactive","all"]}},{"name":"limit","in":"query","required":false,"schema":{"description":"Ads sampled, 1-100. More ads means more advertisers.","type":"number"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/facebook/ad-library/page-ads":{"get":{"summary":"All ads for one advertiser","description":"Every ad a specific Facebook page is running or has run, from Meta's official Ad Library API. This is the competitor-monitoring endpoint: page it with `cursor` to pull a full creative history.\n**Cost:** 2 credits per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"facebook_pageAds","tags":["facebook"],"x-credit-cost":2,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"page_id","in":"query","required":true,"schema":{"description":"Numeric page id, or an Ad Library URL containing `view_all_page_id`","type":"string"}},{"name":"country","in":"query","required":false,"schema":{"description":"ISO-3166 country code(s) the ad reached, comma-separated. Meta requires at least one.","default":"US","type":"string"}},{"name":"status","in":"query","required":false,"schema":{"description":"Delivery status at the time of the query.","default":"active","type":"string","enum":["active","inactive","all"]}},{"name":"ad_type","in":"query","required":false,"schema":{"description":"`political` unlocks Meta's spend, impression and demographic fields.","default":"all","type":"string","enum":["all","political","housing","employment","credit"]}},{"name":"media_type","in":"query","required":false,"schema":{"type":"string","enum":["all","image","meme","video","none"]}},{"name":"platform","in":"query","required":false,"schema":{"description":"Comma-separated: facebook, instagram, messenger, audience_network, threads, whatsapp, oculus","type":"string"}},{"name":"language","in":"query","required":false,"schema":{"description":"Comma-separated BCP-47 codes, e.g. \"en,es\"","type":"string"}},{"name":"start_date","in":"query","required":false,"schema":{"description":"Earliest delivery date, YYYY-MM-DD","type":"string"}},{"name":"end_date","in":"query","required":false,"schema":{"description":"Latest delivery date, YYYY-MM-DD","type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"description":"Ads per page, 1-100. Default 25.","type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/facebook/ad-library/search":{"get":{"summary":"Search the Meta Ad Library","description":"Every Facebook, Instagram, Messenger and Threads ad matching a search term, from Meta's official Ad Library API. Political and issue ads additionally carry spend and impression ranges.\n**Cost:** 2 credits per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"facebook_adLibrarySearch","tags":["facebook"],"x-credit-cost":2,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"query","in":"query","required":true,"schema":{"description":"Search term, matched against ad text and advertiser name","type":"string"}},{"name":"search_type","in":"query","required":false,"schema":{"description":"`exact_phrase` matches the words in order","default":"unordered","type":"string","enum":["unordered","exact_phrase"]}},{"name":"country","in":"query","required":false,"schema":{"description":"ISO-3166 country code(s) the ad reached, comma-separated. Meta requires at least one.","default":"US","type":"string"}},{"name":"status","in":"query","required":false,"schema":{"description":"Delivery status at the time of the query.","default":"active","type":"string","enum":["active","inactive","all"]}},{"name":"ad_type","in":"query","required":false,"schema":{"description":"`political` unlocks Meta's spend, impression and demographic fields.","default":"all","type":"string","enum":["all","political","housing","employment","credit"]}},{"name":"media_type","in":"query","required":false,"schema":{"type":"string","enum":["all","image","meme","video","none"]}},{"name":"platform","in":"query","required":false,"schema":{"description":"Comma-separated: facebook, instagram, messenger, audience_network, threads, whatsapp, oculus","type":"string"}},{"name":"language","in":"query","required":false,"schema":{"description":"Comma-separated BCP-47 codes, e.g. \"en,es\"","type":"string"}},{"name":"start_date","in":"query","required":false,"schema":{"description":"Earliest delivery date, YYYY-MM-DD","type":"string"}},{"name":"end_date","in":"query","required":false,"schema":{"description":"Latest delivery date, YYYY-MM-DD","type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"description":"Ads per page, 1-100. Default 25.","type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/facebook/comment-replies":{"get":{"summary":"Replies to a comment","description":"Replies under one comment on a public Facebook post. Pass the post URL and the comment id (the `id` of any item from /v1/facebook/post-comments).\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"facebook_commentReplies","tags":["facebook"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Full post URL the comment sits on","type":"string"}},{"name":"comment_id","in":"query","required":true,"schema":{"description":"Numeric comment id","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/facebook/event":{"get":{"summary":"Event details","description":"Full details for one public Facebook event: description, start and end time, venue with coordinates, host and ticket price range.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"facebook_event","tags":["facebook"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Event URL or numeric event id","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/facebook/events/search":{"get":{"summary":"Search public events","description":"Public Facebook events matching a search term. Results are ranked and location-biased by the exit IP, so the same query returns a different set from a different proxy — treat this as discovery, not as an enumerable list.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"facebook_eventsSearch","tags":["facebook"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"parameters":[{"name":"query","in":"query","required":true,"schema":{"description":"What to search for, e.g. \"jazz festival\"","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/facebook/group":{"get":{"summary":"Public group info","description":"Name, member count, privacy setting and description for a public Facebook group. Member count lands in `followerCount` — it is a group's equivalent of an audience size — and the privacy setting in `category`. Facebook rounds that count on large groups (\"12K members\"); `raw.memberCountIsApproximate` says whether the number you got was rounded.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"facebook_group","tags":["facebook"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Group URL, group id, or group slug","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/facebook/group-posts":{"get":{"summary":"Public group posts","description":"Recent posts from a public Facebook group, with reaction, comment and share counts where Facebook renders them. Only the newest few stories render to a logged-out visitor, the same limit /v1/facebook/page-posts has. Private groups return an empty result — their posts are not public and we do not log in.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"facebook_groupPosts","tags":["facebook"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Group URL, group id, or group slug","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/facebook/marketplace/item":{"get":{"summary":"Marketplace listing details","description":"One public Facebook Marketplace listing: title, full description, price, location, delivery options and every photo. Facebook does not render the seller to a logged-out visitor, so seller identity is not returned.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"facebook_marketplaceItem","tags":["facebook"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Marketplace item URL or numeric listing id","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/facebook/marketplace/locations":{"get":{"summary":"Find a Marketplace location","description":"Resolve a place name to the Marketplace location ids /v1/facebook/marketplace/search accepts, plus the neighbouring locations Facebook offers around it. Marketplace is city-scoped, so this is how you search a city you are not sitting in.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"facebook_marketplaceLocations","tags":["facebook"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"parameters":[{"name":"query","in":"query","required":true,"schema":{"description":"Place name, e.g. \"London\" or \"San Francisco\"","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/facebook/marketplace/search":{"get":{"summary":"Search Marketplace listings","description":"Public Facebook Marketplace listings matching a search term, with price, condition flags, location and photos. `location` takes a city slug or a location id from /v1/facebook/marketplace/locations; without one, Facebook picks the city its geolocation puts the request in, which means the proxy decides.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"facebook_marketplaceSearch","tags":["facebook"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"parameters":[{"name":"query","in":"query","required":true,"schema":{"description":"What to search for, e.g. \"mountain bike\"","type":"string"}},{"name":"location","in":"query","required":false,"schema":{"description":"City slug (\"nyc\", \"london\") or a location id from /v1/facebook/marketplace/locations","type":"string"}},{"name":"min_price","in":"query","required":false,"schema":{"description":"Lowest price, in the location's currency","type":"number"}},{"name":"max_price","in":"query","required":false,"schema":{"description":"Highest price, in the location's currency","type":"number"}},{"name":"days_since_listed","in":"query","required":false,"schema":{"description":"Only listings posted in the last N days","type":"number"}},{"name":"radius_km","in":"query","required":false,"schema":{"description":"Search radius around the location, in kilometres","type":"number"}},{"name":"sort_by","in":"query","required":false,"schema":{"description":"Facebook's own sort keys","type":"string","enum":["best_match","creation_time_descend","price_ascend","price_descend","distance_ascend"]}},{"name":"delivery_method","in":"query","required":false,"schema":{"description":"Restrict to collection-only or shipped listings","type":"string","enum":["local_pick_up","shipping"]}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/facebook/page-posts":{"get":{"summary":"Public Page posts","description":"Recent public posts from a Facebook Page, with text, reaction, comment and share counts, and the publish timestamp. Logged out, Facebook server-renders only the newest one to three stories and loads the rest on scroll behind an authenticated call — measured 2026-08-20 across four different Page URL shapes — so this returns the head of the feed, not its history. `raw.hasMoreBehindCursor` reports whether Facebook says there is more.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"facebook_pagePosts","tags":["facebook"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Page URL, @handle, slug, or numeric page id","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/facebook/page-reels":{"get":{"summary":"Public Page videos and reels","description":"Public videos and reels from a Facebook Page. Reads the Page's reels tab first and falls back to its video grid, which renders around twenty entries with titles, view counts and durations — so a Page with no reels returns its videos rather than an error. Items are keyed by video id and can be passed straight to /v1/facebook/post or /v1/facebook/post-transcript.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"facebook_pageReels","tags":["facebook"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Page URL, @handle, slug, or numeric page id","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/facebook/post":{"get":{"summary":"Single post, video, or reel","description":"One public Facebook post, video or reel by URL, with its text and engagement counts.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"facebook_post","tags":["facebook"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Full post, video, or reel URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/facebook/post-comments":{"get":{"summary":"Comments on a post","description":"Top-level comments on a public Facebook post, with author, reaction count and reply count. Logged out, Facebook renders the \"Most relevant\" head of the thread (roughly the first ten comments) rather than the whole thread — the post's full comment total is on /v1/facebook/post. Use /v1/facebook/comment-replies for the replies under one comment. `likeCount` is only as precise as Facebook publishes it: comment reactions ship in abbreviated form (\"2.4K\") with no exact figure anywhere in the payload, so counts above about a thousand are rounded at source.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"facebook_postComments","tags":["facebook"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Full post, video, or reel URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/facebook/post-transcript":{"get":{"summary":"Video transcript","description":"Transcript for a public Facebook video or reel, as one text block plus timed cues. Reads the caption track Facebook publishes for the video — auto-generated when the uploader added none. Videos with captions disabled return an empty result and are not charged.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"facebook_postTranscript","tags":["facebook"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Full video or reel URL","type":"string"}},{"name":"language","in":"query","required":false,"schema":{"description":"Preferred caption locale, e.g. \"en\" or \"en_US\"","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/facebook/profile":{"get":{"summary":"Public Page profile","description":"Name, category, follower and like counts, description, banner and outbound links for a public Facebook Page. `followerCount` is as precise as Facebook renders it — exact on a small Page (\"498 followers\"), rounded on a large one (\"28M followers\", so ±500,000). `raw.followerCountIsApproximate` says which you got, and `raw.likeCount` carries the exact like figure Facebook always prints.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"facebook_profile","tags":["facebook"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Page URL, @handle, slug, or numeric page id","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/facebook/profile-events":{"get":{"summary":"Events on a Page","description":"Events hosted by a public Facebook Page — upcoming ones first, with past events where Facebook still lists them. Each carries start time, place, host and the cover photo.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"facebook_profileEvents","tags":["facebook"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Page URL, @handle, slug, or numeric page id","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/facebook/profile-photos":{"get":{"summary":"Photos on a Page","description":"Photos from a public Facebook Page's photo grid. Facebook exposes each photo's accessibility caption rather than the text of the post it came from, so that is what lands in `title`.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"facebook_profilePhotos","tags":["facebook"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Page URL, @handle, slug, or numeric page id","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/github/repository":{"get":{"summary":"Repository details","description":"Public details for a repository: stars, forks, open issues, topics, language and licence. Stars map to `likeCount`, forks to `shareCount`.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"github_repository","tags":["github"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"\"owner/repo\" or a github.com repository URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/github/trending/developers":{"get":{"summary":"Trending developers","description":"The public github.com/trending/developers board. Counts are null: the board renders names and popular repositories, not follower numbers.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"github_trendingDevelopers","tags":["github"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":false,"x-requires-residential-proxy":false,"x-subscribable":false,"parameters":[{"name":"language","in":"query","required":false,"schema":{"description":"Language slug, e.g. \"rust\"","type":"string"}},{"name":"since","in":"query","required":false,"schema":{"default":"daily","type":"string","enum":["daily","weekly","monthly"]}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/github/trending/repositories":{"get":{"summary":"Trending repositories","description":"The public github.com/trending board. `likeCount` is total stars and `shareCount` total forks; the stars gained in the period are in `raw`.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"github_trendingRepositories","tags":["github"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":false,"x-requires-residential-proxy":false,"x-subscribable":false,"parameters":[{"name":"language","in":"query","required":false,"schema":{"description":"Language slug, e.g. \"typescript\"","type":"string"}},{"name":"since","in":"query","required":false,"schema":{"default":"daily","type":"string","enum":["daily","weekly","monthly"]}},{"name":"spoken_language_code","in":"query","required":false,"schema":{"description":"Two-letter code, e.g. \"en\"","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/github/user":{"get":{"summary":"User or organisation profile","description":"Public profile for a GitHub user or organisation: followers, public repo count, bio, company, location and links.\n**Required:** Pass either `handle` or `url`.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"github_user","tags":["github"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"x-parameter-constraints":["Pass either `handle` or `url`."],"parameters":[{"name":"handle","in":"query","required":false,"schema":{"description":"Username, e.g. \"torvalds\"","type":"string"}},{"name":"url","in":"query","required":false,"schema":{"description":"Profile URL, e.g. https://github.com/torvalds","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/github/user/activity":{"get":{"summary":"Public activity","description":"Public events for a user — pushes, pull requests, issues, stars, forks and releases. GitHub caps this feed at 300 events / 90 days regardless of paging.\n**Required:** Pass either `handle` or `url`.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"github_activity","tags":["github"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"x-parameter-constraints":["Pass either `handle` or `url`."],"parameters":[{"name":"handle","in":"query","required":false,"schema":{"description":"Username, e.g. \"torvalds\"","type":"string"}},{"name":"url","in":"query","required":false,"schema":{"description":"Profile URL, e.g. https://github.com/torvalds","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"Page number from the previous response","type":"string"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/github/user/contributions":{"get":{"summary":"Contributions calendar","description":"The contribution graph for one calendar year: a per-day count plus GitHub's 0–4 intensity level, and the annual total.\n**Required:** Pass either `handle` or `url`.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"github_contributions","tags":["github"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"x-parameter-constraints":["Pass either `handle` or `url`."],"parameters":[{"name":"handle","in":"query","required":false,"schema":{"description":"Username, e.g. \"torvalds\"","type":"string"}},{"name":"url","in":"query","required":false,"schema":{"description":"Profile URL, e.g. https://github.com/torvalds","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"year","in":"query","required":false,"schema":{"description":"Calendar year, e.g. \"2025\". Defaults to the current year.","type":"string"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/github/user/followers":{"get":{"summary":"Followers","description":"Accounts following this user, 30 per page. GitHub serves a reduced user payload here, so per-account counts are null.\n**Required:** Pass either `handle` or `url`.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"github_followers","tags":["github"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"x-parameter-constraints":["Pass either `handle` or `url`."],"parameters":[{"name":"handle","in":"query","required":false,"schema":{"description":"Username, e.g. \"torvalds\"","type":"string"}},{"name":"url","in":"query","required":false,"schema":{"description":"Profile URL, e.g. https://github.com/torvalds","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"Page number from the previous response","type":"string"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/github/user/following":{"get":{"summary":"Following","description":"Accounts this user follows, 30 per page. GitHub serves a reduced user payload here, so per-account counts are null.\n**Required:** Pass either `handle` or `url`.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"github_following","tags":["github"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"x-parameter-constraints":["Pass either `handle` or `url`."],"parameters":[{"name":"handle","in":"query","required":false,"schema":{"description":"Username, e.g. \"torvalds\"","type":"string"}},{"name":"url","in":"query","required":false,"schema":{"description":"Profile URL, e.g. https://github.com/torvalds","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"Page number from the previous response","type":"string"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/github/user/pull-requests":{"get":{"summary":"Pull requests by a user","description":"Pull requests authored by a user across all public repositories, newest first. `since` / `until` filter on creation date.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"github_pullRequests","tags":["github"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Username, e.g. \"gaearon\"","type":"string"}},{"name":"since","in":"query","required":false,"schema":{"description":"Only PRs created on or after this date (YYYY-MM-DD)","type":"string"}},{"name":"until","in":"query","required":false,"schema":{"description":"Only PRs created on or before this date (YYYY-MM-DD)","type":"string"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"Page number from the previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/github/user/repositories":{"get":{"summary":"User repositories","description":"Public repositories owned by a user or organisation, 30 per page.\n**Required:** Pass either `handle` or `url`.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"github_userRepositories","tags":["github"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"x-parameter-constraints":["Pass either `handle` or `url`."],"parameters":[{"name":"handle","in":"query","required":false,"schema":{"description":"Username, e.g. \"torvalds\"","type":"string"}},{"name":"url","in":"query","required":false,"schema":{"description":"Profile URL, e.g. https://github.com/torvalds","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"type","in":"query","required":false,"schema":{"default":"owner","type":"string","enum":["all","owner","member"]}},{"name":"sort","in":"query","required":false,"schema":{"default":"updated","type":"string","enum":["created","updated","pushed","full_name"]}},{"name":"direction","in":"query","required":false,"schema":{"default":"desc","type":"string","enum":["asc","desc"]}},{"name":"cursor","in":"query","required":false,"schema":{"description":"Page number from the previous response","type":"string"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/google/ad-library/ad":{"get":{"summary":"Ad details","description":"One creative from the Ads Transparency Centre, with every rendering variant and the per-country dates it ran.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"google_ad","tags":["google"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Creative URL, e.g. https://adstransparency.google.com/advertiser/AR.../creative/CR...?region=US","type":"string"}},{"name":"region","in":"query","required":false,"schema":{"description":"Overrides the region in the URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/google/ad-library/advertiser-ads":{"get":{"summary":"Ads run by an advertiser or domain","description":"Creatives in the Ads Transparency Centre for one advertiser id or one verified domain, with first-shown and last-shown dates. Pass the `cursor` from the previous response to page.\n**Required:** Pass either `domain` or `advertiser_id`.\n**Cost:** 2 credits per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"google_advertiserAds","tags":["google"],"x-credit-cost":2,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"x-parameter-constraints":["Pass either `domain` or `advertiser_id`."],"parameters":[{"name":"domain","in":"query","required":false,"schema":{"description":"Verified advertiser domain, e.g. \"nike.com\"","type":"string"}},{"name":"advertiser_id","in":"query","required":false,"schema":{"description":"Advertiser id from /ad-library/advertisers, e.g. \"AR167...\"","type":"string"}},{"name":"region","in":"query","required":false,"schema":{"description":"Two-letter country code (US, GB, DE, IN, ...) or a Google geo criteria id","default":"US","type":"string"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"Continuation token from the previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/google/ad-library/advertisers":{"get":{"summary":"Find advertisers in the Ads Transparency Centre","description":"Advertisers matching a name, with the advertiser id that /v1/google/ad-library/advertiser-ads needs, plus the verified domains Google suggests for the same term.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"google_adLibraryAdvertisers","tags":["google"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":false,"parameters":[{"name":"query","in":"query","required":true,"schema":{"description":"Advertiser or brand name, e.g. \"nike\"","type":"string"}},{"name":"region","in":"query","required":false,"schema":{"description":"Two-letter country code (US, GB, DE, IN, ...) or a Google geo criteria id","default":"US","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/google/search":{"get":{"summary":"Web search results","description":"Organic Google results for a query. Requires residential proxies or the scraper API — Google refuses a datacenter IP.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"google_search","tags":["google"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string"}},{"name":"region","in":"query","required":false,"schema":{"description":"Two-letter country code (US, GB, DE, IN, ...) or a Google geo criteria id","default":"US","type":"string"}},{"name":"date_posted","in":"query","required":false,"schema":{"type":"string","enum":["hour","day","week","month","year"]}},{"name":"page","in":"query","required":false,"schema":{"description":"1-based page number","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/instagram/audio-reels":{"get":{"summary":"Reels using a sound","description":"Reels built on one audio track — the \"N reels using this audio\" list. Takes the numeric audio id or a /reels/audio/ URL. Falls back to the server-rendered audio page, which returns the first grid only.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"instagram_audioReels","tags":["instagram"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"x-experimental":true,"parameters":[{"name":"audio_id","in":"query","required":true,"schema":{"description":"Numeric audio id, or a /reels/audio/<id>/ URL","type":"string"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"count","in":"query","required":false,"schema":{"description":"Reels per page, 1-50. Default 12.","type":"number"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/instagram/basic-profile":{"get":{"summary":"Profile by numeric id","description":"The lightweight profile payload, addressed by numeric user id. Use this when you already hold an id — it skips the handle lookup and returns a smaller object than /v1/instagram/profile, which stays the right call when you have a handle and want everything.\n**Required:** Pass either `handle` or `user_id`.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"instagram_basicProfile","tags":["instagram"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"x-parameter-constraints":["Pass either `handle` or `user_id`."],"parameters":[{"name":"handle","in":"query","required":false,"schema":{"description":"Handle (@nike), or a full instagram.com profile URL. Optional if `user_id` is given.","type":"string"}},{"name":"user_id","in":"query","required":false,"schema":{"description":"Numeric user id. Skips a lookup — take it from `data.items[].authorId`.","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/instagram/comment-replies":{"get":{"summary":"Replies under one comment","description":"The full reply thread under a single comment. Take `comment_id` from `data.items[].id` on /v1/instagram/post-comments; the post URL is still required because Instagram addresses replies through the media that carries them.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"instagram_commentReplies","tags":["instagram"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":false,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Post, reel or IGTV URL, or a bare shortcode","type":"string"}},{"name":"comment_id","in":"query","required":true,"schema":{"description":"`data.items[].id` from /v1/instagram/post-comments","type":"string"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"count","in":"query","required":false,"schema":{"description":"Replies per page, 1-50. Default 24.","type":"number"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/instagram/hashtag-posts":{"get":{"summary":"Posts under a hashtag","description":"Posts carrying a hashtag. `tab=top` is Instagram's ranking (one fixed page, no cursor); `tab=recent` is chronological and paginates. Falls back to the server-rendered tag page when the JSON surface declines, which returns the top grid only.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"instagram_hashtagPosts","tags":["instagram"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"x-experimental":true,"parameters":[{"name":"hashtag","in":"query","required":true,"schema":{"description":"Hashtag (#nasa or nasa), or an /explore/tags/ URL","type":"string"}},{"name":"tab","in":"query","required":false,"schema":{"description":"Instagram's ranking, or chronological","default":"top","type":"string","enum":["top","recent"]}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response — `recent` only","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/instagram/highlight":{"get":{"summary":"Stories inside a highlight","description":"Every story in one highlight reel, oldest first, with its media URLs. Takes the `id` from /v1/instagram/user-highlights, a bare numeric id, or a /stories/highlights/ URL.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"instagram_highlight","tags":["instagram"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"id","in":"query","required":true,"schema":{"description":"Highlight id (\"highlight:17…\" or the bare number), or a /stories/highlights/ URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/instagram/popular-search":{"get":{"summary":"Top posts for a keyword","description":"Instagram's keyword results across every media type — reels, images and carousels together. The same surface as /v1/instagram/reels-search without the clips filter.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"instagram_popularSearch","tags":["instagram"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"x-experimental":true,"parameters":[{"name":"query","in":"query","required":true,"schema":{"description":"Keyword to search for","type":"string"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/instagram/post":{"get":{"summary":"Post or reel details","description":"One public post, reel or carousel with its caption, media URLs and engagement counts. Falls back to Instagram's public embed payload when the web client's persisted query is unavailable, so a Meta client release degrades this rather than breaking it.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"instagram_post","tags":["instagram"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Post, reel or IGTV URL, or a bare shortcode","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/instagram/post-comments":{"get":{"summary":"Comments on a post or reel","description":"Top-level comments, newest first. Set `include_replies=true` to also return any replies Instagram shipped inline with their parent — for the full reply thread under one comment, use /v1/instagram/comment-replies.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"instagram_postComments","tags":["instagram"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Post, reel or IGTV URL, or a bare shortcode","type":"string"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"count","in":"query","required":false,"schema":{"description":"Comments per page, 1-50. Default 24.","type":"number"}},{"name":"include_replies","in":"query","required":false,"schema":{"description":"Include replies that arrived inline with their parent comment","type":"boolean"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/instagram/profile":{"get":{"summary":"Profile details","description":"Public profile for an Instagram account: followers, following, post count, bio, links and business category. Private accounts return their public shell with `isPrivate: true` rather than an error — that is a real answer.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"instagram_profile","tags":["instagram"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle (@nike), or a full instagram.com profile URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/instagram/profile-search":{"get":{"summary":"Search accounts","description":"Accounts matching a query, as unified Creators. The follower counts on a search result are Instagram's own summary and are thinner than /v1/instagram/profile — fetch that for one account you care about. One page only; this surface has no cursor.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"instagram_profileSearch","tags":["instagram"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"x-experimental":true,"parameters":[{"name":"query","in":"query","required":true,"schema":{"description":"Handle or name to search for","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/instagram/reels-search":{"get":{"summary":"Search reels by keyword","description":"Reels matching a keyword, from Instagram's own keyword search rather than its hashtag index — the two return genuinely different sets, so this never quietly substitutes one for the other. Results are whatever Instagram ranked for the query at that moment.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"instagram_reelsSearch","tags":["instagram"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"x-experimental":true,"parameters":[{"name":"query","in":"query","required":true,"schema":{"description":"Keyword to search for","type":"string"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/instagram/search":{"get":{"summary":"Search accounts, hashtags and places","description":"Instagram's blended search — the one behind the search box. Returns three buckets: `users` as unified Creators, plus `hashtags` and `places`, which have no unified equivalent and keep Instagram's own shape. One page only; this surface has no cursor.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"instagram_search","tags":["instagram"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"x-experimental":true,"parameters":[{"name":"query","in":"query","required":true,"schema":{"description":"What to search for","type":"string"}},{"name":"type","in":"query","required":false,"schema":{"description":"Restrict to one kind of result","default":"all","type":"string","enum":["all","users","hashtags","places"]}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/instagram/transcript":{"get":{"summary":"Reel or video transcript","description":"The caption track Instagram published for a reel or video, as one text block plus timed cues. We return Instagram's own track and never transcribe the audio ourselves, so a transcript here is always what the platform said rather than what a model guessed. **Read this before relying on it:** checked against 12 real reel payloads, none carried a caption track in any form — no inline transcript, and DASH manifests with video and audio tracks only. On current evidence Instagram publishes none, so this returns `empty_result` (free, never charged) rather than a transcript. It is shipped as experimental so the shape is stable if that changes.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"instagram_transcript","tags":["instagram"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Reel, post or IGTV URL, or a bare shortcode","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/instagram/trending-reels":{"get":{"summary":"Reels trending on Explore","description":"Reels off Instagram's public Explore grid. Worth knowing what this is and is not: Explore is region-shaped, so what comes back depends on where the request exits, and it is Instagram's editorial surface rather than a global chart. There is no public trending feed on Instagram; this is the closest one that exists.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"instagram_trendingReels","tags":["instagram"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":false,"x-requires-residential-proxy":true,"x-subscribable":false,"x-experimental":true,"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"count","in":"query","required":false,"schema":{"description":"Reels per page, 1-50. Default 24.","type":"number"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/instagram/user-embed":{"get":{"summary":"Profile via the public embed card","description":"A profile read off Instagram's public embed card, with the embed HTML in `raw.html` for anyone who wants to render it. Instagram publishes embeds so third parties can display them, which makes this the profile path it has the least reason to gate — the same reasoning that puts the post embed on /v1/instagram/post's fallback. It carries fewer fields than /v1/instagram/profile; reach for it when that one is blocked, or when you want the markup.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"instagram_userEmbed","tags":["instagram"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle (@nike), or a full instagram.com profile URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/instagram/user-highlights":{"get":{"summary":"Story highlight covers","description":"The highlight reels pinned to a profile: title, cover, and how many stories each holds. Pass an `id` from here to /v1/instagram/highlight for the stories inside one. Highlights are the only Instagram stories that stay public indefinitely — live stories expire in 24 hours and are not served logged-out.\n**Required:** Pass either `handle` or `user_id`.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"instagram_userHighlights","tags":["instagram"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"x-parameter-constraints":["Pass either `handle` or `user_id`."],"parameters":[{"name":"handle","in":"query","required":false,"schema":{"description":"Handle (@nike), or a full instagram.com profile URL. Optional if `user_id` is given.","type":"string"}},{"name":"user_id","in":"query","required":false,"schema":{"description":"Numeric user id. Skips a lookup — take it from `data.items[].authorId`.","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/instagram/user-posts":{"get":{"summary":"Posts and reels from a profile","description":"A profile grid, newest first. The first page comes from the same payload as the profile and is the reliable one; pass `cursor` (and ideally `user_id`) for older pages, which Instagram serves far less consistently to logged-out callers.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"instagram_userPosts","tags":["instagram"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle (@nike), or a full instagram.com profile URL","type":"string"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"user_id","in":"query","required":false,"schema":{"description":"Numeric user id. Saves a round trip when paginating; take it from `data.items[].authorId`.","type":"string"}},{"name":"count","in":"query","required":false,"schema":{"description":"Posts per page when paginating, 1-50. Default 12.","type":"number"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/instagram/user-reels":{"get":{"summary":"Reels from a profile","description":"A profile's reels, newest first. Primary path is the reels tab's own feed; if Instagram declines it, this falls back to filtering the profile grid down to clips, so the endpoint degrades in density rather than going dark. `raw.via` says which answered.\n**Required:** Pass either `handle` or `user_id`.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"instagram_userReels","tags":["instagram"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"x-parameter-constraints":["Pass either `handle` or `user_id`."],"parameters":[{"name":"handle","in":"query","required":false,"schema":{"description":"Handle (@nike), or a full instagram.com profile URL. Optional if `user_id` is given.","type":"string"}},{"name":"user_id","in":"query","required":false,"schema":{"description":"Numeric user id. Skips a lookup — take it from `data.items[].authorId`.","type":"string"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"count","in":"query","required":false,"schema":{"description":"Reels per page, 1-50. Default 12.","type":"number"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/instagram/user-tagged-posts":{"get":{"summary":"Posts a profile is tagged in","description":"Public posts by other accounts that tagged this user — the \"Tagged\" tab. Note this is other people's content: `authorHandle` is the poster, not the tagged account. Users can hide the tab, which returns `empty_result`.\n**Required:** Pass either `handle` or `user_id`.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"instagram_userTaggedPosts","tags":["instagram"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"x-parameter-constraints":["Pass either `handle` or `user_id`."],"parameters":[{"name":"handle","in":"query","required":false,"schema":{"description":"Handle (@nike), or a full instagram.com profile URL. Optional if `user_id` is given.","type":"string"}},{"name":"user_id","in":"query","required":false,"schema":{"description":"Numeric user id. Skips a lookup — take it from `data.items[].authorId`.","type":"string"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"count","in":"query","required":false,"schema":{"description":"Posts per page, 1-50. Default 12.","type":"number"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/kick/clip":{"get":{"summary":"Clip","description":"A public Kick clip: title, creator, channel, duration, view count, and media URL.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"kick_clip","tags":["kick"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Clip URL (https://kick.com/<channel>?clip=clip_XXXX or /clips/clip_XXXX) or a clip id","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/komi":{"get":{"summary":"Komi page","description":"Public Komi page as a creator profile: display name, bio, avatar, and every outbound link in order.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"komi_page","tags":["komi"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Page URL (https://komi.io/<username>) or just the username","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/kwai/post":{"get":{"summary":"Post","description":"A single public Kwai video with its view, like, comment and forward counts.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"kwai_post","tags":["kwai"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Video URL (https://www.kwai.com/@<handle>/video/<photo_id>)","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/kwai/profile":{"get":{"summary":"Profile","description":"Public Kwai profile: follower and following counts, public video count, bio, avatar, and creator category.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"kwai_profile","tags":["kwai"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle (@carlinhos) or a kwai.com profile URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/kwai/user/posts":{"get":{"summary":"User posts","description":"Recent public videos from a Kwai profile, with view, like, comment and forward counts.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"kwai_userPosts","tags":["kwai"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle (@carlinhos) or a kwai.com profile URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/linkbio":{"get":{"summary":"Lnk.Bio page","description":"Public Lnk.Bio page as a creator profile: display name, bio, avatar, and every outbound link in order.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"linkbio_page","tags":["linkbio"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Page URL (https://lnk.bio/<username>) or just the username","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/linkedin/ad":{"get":{"summary":"Ad details","description":"One ad from LinkedIn's public Ad Library: creative, copy, advertiser, and the paying entity. Ads covered by EU disclosure rules also carry run dates, target countries and impression bands; ads outside those rules do not, and those fields come back null rather than guessed.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"linkedin_ad","tags":["linkedin"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Ad Library URL (linkedin.com/ad-library/detail/...) or the numeric ad id","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/linkedin/ads/search":{"get":{"summary":"Search ads","description":"Search LinkedIn's public Ad Library by advertiser or keyword. Pass `company` (a company page slug or numeric id) to list one advertiser's ads, `keyword` to search copy, or both. Returns the first page LinkedIn server-renders — about 25 ads; the total number of matches is in `raw.totalMatches`.\n**Required:** Pass `company`, `keyword`, or both — the Ad Library will not return an unfiltered archive.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"linkedin_adsSearch","tags":["linkedin"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"x-parameter-constraints":["Pass `company`, `keyword`, or both — the Ad Library will not return an unfiltered archive."],"parameters":[{"name":"company","in":"query","required":false,"schema":{"description":"Company page slug (\"microsoft\") or numeric company id (\"1035\")","type":"string"}},{"name":"keyword","in":"query","required":false,"schema":{"description":"Words to match in the ad copy","type":"string"}},{"name":"countries","in":"query","required":false,"schema":{"description":"Comma-separated ISO-3166 country codes the ad reached, e.g. \"US,GB\"","type":"string"}},{"name":"start_date","in":"query","required":false,"schema":{"description":"Earliest run date, YYYY-MM-DD","type":"string"}},{"name":"end_date","in":"query","required":false,"schema":{"description":"Latest run date, YYYY-MM-DD","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/linkedin/company":{"get":{"summary":"Company page","description":"A LinkedIn company page: description, follower count, headquarters, employee count and logo. Also works for school and showcase pages.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"linkedin_company","tags":["linkedin"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Company URL (linkedin.com/company/...) or the company slug","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/linkedin/company/posts":{"get":{"summary":"Company posts","description":"Recent posts from a company page, with reaction and comment counts. Read from the company page itself: LinkedIn's dedicated /posts/ tab is behind the sign-in wall, but the same updates render on the public page. That caps the result at roughly the last ten posts — there is no logged-out pagination, so `hasMore` is always false. `publishedAt` is an absolute timestamp for the posts LinkedIn describes in structured data and a relative age (\"3w\") for the rest; `raw.withAbsoluteDates` says how many got the former. Use `linkedin.post` on any id for an exact time.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"linkedin_companyPosts","tags":["linkedin"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Company URL (linkedin.com/company/...) or the company slug","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/linkedin/post":{"get":{"summary":"Post details","description":"One LinkedIn post: full text, media, author, publication time, reactions and comment count. Top-level comments LinkedIn publishes on the page ride along in `raw.comments`.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"linkedin_post","tags":["linkedin"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Post URL (linkedin.com/posts/... or /feed/update/urn:li:activity:...) or the numeric id","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/linkedin/post/transcript":{"get":{"summary":"Post transcript","description":"Captions for a LinkedIn video post, as one text block plus timed cues. Only returns data where the poster attached a caption track AND LinkedIn exposes it to logged-out viewers — probed 2026-08-20, native video posts ship mp4 sources and a poster frame with no caption track, so expect this to come back empty for most posts. Empty results are never charged.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"linkedin_postTranscript","tags":["linkedin"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Post URL or the numeric activity id","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/linkedin/profile":{"get":{"summary":"Person's profile","description":"A LinkedIn member's public profile: name, headline, location, follower count, avatar, current employers and education. LinkedIn masks parts of a logged-out profile with asterisks; masked values are dropped rather than returned as `****`.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"linkedin_profile","tags":["linkedin"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Profile URL (linkedin.com/in/...) or the profile slug","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/linkedin/search/posts":{"get":{"summary":"Search posts","description":"Keyword search over LinkedIn posts. LinkedIn gates content search behind sign-in for every logged-out caller — verified 2026-08-20, /search/results/content/ redirects to /uas/login regardless of origin IP — and we do not scrape authenticated sessions, so this endpoint reports the gate rather than pretending to be broken. It is shipped so callers get one clear, unbilled answer instead of a 404 on a documented route.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"linkedin_searchPosts","tags":["linkedin"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":false,"x-requires-residential-proxy":true,"x-subscribable":false,"x-experimental":true,"parameters":[{"name":"query","in":"query","required":true,"schema":{"description":"Search terms","type":"string"}},{"name":"date_posted","in":"query","required":false,"schema":{"description":"Restrict to recent posts","type":"string","enum":["past-24h","past-week","past-month"]}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/linkme":{"get":{"summary":"LinkMe page","description":"Public LinkMe page as a creator profile: display name, bio, avatar, and every outbound link in order.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"linkme_page","tags":["linkme"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Page URL (https://linkme.bio/<username>) or just the username","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/linktree":{"get":{"summary":"Linktree page","description":"Public Linktree page as a creator profile: display name, bio, avatar, and every outbound link in order.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"linktree_page","tags":["linktree"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Page URL (https://linktr.ee/<username>) or just the username","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/pillar":{"get":{"summary":"Pillar page","description":"Public Pillar page as a creator profile: display name, bio, avatar, and every outbound link in order.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"pillar_page","tags":["pillar"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Page URL (https://pillar.io/<username>) or just the username","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/pinterest/board":{"get":{"summary":"Board and its pins","description":"Board metadata plus a page of its pins. Pass the `cursor` from the previous response to page through the board.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"pinterest_board","tags":["pinterest"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Board URL, e.g. https://www.pinterest.com/pinterest/spice-up-your-dinner-plans/","type":"string"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"Bookmark from the previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/pinterest/pin":{"get":{"summary":"Pin details","description":"Public details for a pin: title, description, destination link, saves, reactions and full-resolution media. Saves map to `shareCount`.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"pinterest_pin","tags":["pinterest"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Pin URL, e.g. https://www.pinterest.com/pin/1130122100248990600/","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/pinterest/search":{"get":{"summary":"Search pins","description":"Public Pinterest search results for a query, as unified posts.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"pinterest_search","tags":["pinterest"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":false,"parameters":[{"name":"query","in":"query","required":true,"schema":{"description":"Search terms, e.g. \"minimalist kitchen\"","type":"string"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"Bookmark from the previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/pinterest/user/boards":{"get":{"summary":"Boards owned by a user","description":"Public boards on a profile, most recently pinned-to first, with pin and follower counts.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"pinterest_userBoards","tags":["pinterest"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Username, e.g. \"pinterest\"","type":"string"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"Bookmark from the previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/reddit/post":{"get":{"summary":"Post details","description":"One Reddit post with its score, comment count, body text and media. Use `reddit.postComments` for the comment tree — they are separate endpoints so a post with no comments is still a paid, cached result rather than an empty one.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"reddit_post","tags":["reddit"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Post URL (reddit.com/r/.../comments/...) or a post id","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/reddit/post/comment/replies":{"get":{"summary":"Comment replies","description":"The reply thread under a single comment — the continuation behind Reddit's \"load more comments\". Takes a comment permalink, or \"postId:commentId\".\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"reddit_commentReplies","tags":["reddit"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Comment permalink (.../comments/{post}/{slug}/{comment}/) or \"postId:commentId\"","type":"string"}},{"name":"depth","in":"query","required":false,"schema":{"description":"Reply levels below the comment, 1-10. Default 6.","type":"number"}},{"name":"sort","in":"query","required":false,"schema":{"default":"confidence","type":"string","enum":["confidence","top","new","controversial","old","qa"]}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/reddit/post/comments":{"get":{"summary":"Post comments","description":"A post's comment tree, flattened into reading order with `parentId` preserved so callers can rebuild it. Reddit collapses deep threads behind continuation stubs; fetch those with `reddit.commentReplies`.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"reddit_postComments","tags":["reddit"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Post URL (reddit.com/r/.../comments/...) or a post id","type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"description":"Reddit's comment sorts. \"confidence\" is the site default (\"Best\").","default":"confidence","type":"string","enum":["confidence","top","new","controversial","old","qa"]}},{"name":"depth","in":"query","required":false,"schema":{"description":"Reply levels to walk, 1-10. Default 4.","type":"number"}},{"name":"limit","in":"query","required":false,"schema":{"description":"Top-level comments to request, 1-500. Default 100.","type":"number"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/reddit/search":{"get":{"summary":"Search posts","description":"Reddit post search, site-wide or restricted to one subreddit with `subreddit`. Falls back to the Atom feed when the JSON surface is blocked.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"reddit_search","tags":["reddit"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":false,"parameters":[{"name":"query","in":"query","required":true,"schema":{"description":"Search terms. Reddit's own syntax works, e.g. `flair:\"news\"`.","type":"string"}},{"name":"subreddit","in":"query","required":false,"schema":{"description":"Restrict to one subreddit","type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"default":"relevance","type":"string","enum":["relevance","hot","top","new","comments"]}},{"name":"timeframe","in":"query","required":false,"schema":{"description":"Window for the search. Default \"all\".","type":"string","enum":["hour","day","week","month","year","all"]}},{"name":"limit","in":"query","required":false,"schema":{"description":"Results per page, 1-100. Default 25.","type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/reddit/subreddit":{"get":{"summary":"Subreddit posts","description":"Posts from a subreddit, sorted the way Reddit sorts them. `sort=top` and `sort=controversial` accept a `timeframe`. Falls back to Reddit's Atom feed when the JSON surface is blocked — `raw.via` says which answered, and the Atom path returns no scores or comment counts.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"reddit_subreddit","tags":["reddit"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"parameters":[{"name":"subreddit","in":"query","required":true,"schema":{"description":"Subreddit name (\"aww\", \"r/aww\") or a full reddit.com/r/... URL","type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"default":"hot","type":"string","enum":["hot","new","top","rising","controversial"]}},{"name":"timeframe","in":"query","required":false,"schema":{"description":"Window for sort=top / sort=controversial. Default \"day\".","type":"string","enum":["hour","day","week","month","year","all"]}},{"name":"limit","in":"query","required":false,"schema":{"description":"Posts per page, 1-100. Default 25.","type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/reddit/subreddit/details":{"get":{"summary":"Subreddit details","description":"Public metadata for a subreddit: subscribers, people online now, description, icons, creation date, and whether it is private or restricted.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"reddit_subredditDetails","tags":["reddit"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"subreddit","in":"query","required":true,"schema":{"description":"Subreddit name (\"aww\", \"r/aww\") or a full reddit.com/r/... URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/reddit/user":{"get":{"summary":"User profile","description":"A Reddit account's public profile: display name, description, avatar, account age, and karma (returned under `raw.karma`, since the unified schema has no karma field).\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"reddit_user","tags":["reddit"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"username","in":"query","required":true,"schema":{"description":"Username (\"spez\", \"u/spez\") or a reddit.com/user/... URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/reddit/user/posts":{"get":{"summary":"User posts","description":"Posts submitted by a Reddit account, newest first by default. Falls back to the account's Atom feed when the JSON surface is blocked.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"reddit_userPosts","tags":["reddit"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"parameters":[{"name":"username","in":"query","required":true,"schema":{"description":"Username (\"spez\", \"u/spez\") or a reddit.com/user/... URL","type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"default":"new","type":"string","enum":["new","hot","top"]}},{"name":"timeframe","in":"query","required":false,"schema":{"description":"Window for sort=top. Default \"all\".","type":"string","enum":["hour","day","week","month","year","all"]}},{"name":"limit","in":"query","required":false,"schema":{"description":"Posts per page, 1-100. Default 25.","type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/rumble/channel/videos":{"get":{"summary":"Channel videos","description":"A Rumble channel's public uploads, newest first, 25 per page. Pass the `cursor` from the previous response to page.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"rumble_channelVideos","tags":["rumble"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Channel handle (Asmongold), c/Handle, user/Handle, or a full rumble.com URL","type":"string"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from the previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/rumble/search":{"get":{"summary":"Search videos","description":"Public Rumble video search results, 25 per page.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"rumble_search","tags":["rumble"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"parameters":[{"name":"query","in":"query","required":true,"schema":{"description":"Search terms","type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"default":"relevance","type":"string","enum":["relevance","views","date"]}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from the previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/rumble/video":{"get":{"summary":"Video details","description":"Public metadata for a Rumble video: exact view count, likes and dislikes, comment count, duration, upload date, channel and follower count.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"rumble_video","tags":["rumble"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Rumble watch URL (rumble.com/v7e9i52-slug.html) or a bare permalink id","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/rumble/video/comments":{"get":{"summary":"Video comments","description":"Public comments on a Rumble video, including replies. Rumble hides comments behind a login on some videos; when it does, this returns an unbilled empty result rather than logging in.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"rumble_comments","tags":["rumble"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Rumble watch URL (rumble.com/v7e9i52-slug.html) or a bare permalink id","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/rumble/video/transcript":{"get":{"summary":"Video transcript","description":"A Rumble video's captions as one text block plus timed cues. Returns the requested language when the video has it, otherwise the default track.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"rumble_transcript","tags":["rumble"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Rumble watch URL (rumble.com/v7e9i52-slug.html) or a bare permalink id","type":"string"}},{"name":"language","in":"query","required":false,"schema":{"description":"Language code, e.g. \"en\"","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/snapchat/profile":{"get":{"summary":"User profile","description":"Public Snapchat profile. Creator and business accounts return subscriber count, bio, website and avatar; personal accounts return only the handle and display name, which is all Snapchat publishes for them.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"snapchat_profile","tags":["snapchat"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle (teamsnapchat) or a snapchat.com/add/<handle> URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/snapchat/spotlight":{"get":{"summary":"Spotlight by link","description":"A public Snapchat Spotlight video: view count, duration, creator, thumbnail, media URL, and the auto-generated transcript when Snapchat has one.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"snapchat_spotlight","tags":["snapchat"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Spotlight URL (https://www.snapchat.com/spotlight/<id>)","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/snapchat/spotlight/comments":{"get":{"summary":"Spotlight comments by link","description":"Public comments on a Snapchat Spotlight, ranked the way Snapchat ranks them, with reaction and threaded-reply counts.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"snapchat_spotlightComments","tags":["snapchat"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Spotlight URL (https://www.snapchat.com/spotlight/<id>)","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/soundcloud/artist":{"get":{"summary":"Artist profile","description":"Public SoundCloud profile: followers, following, track count, bio, avatar and header image.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"soundcloud_artist","tags":["soundcloud"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle (flume), or a full soundcloud.com profile URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/soundcloud/artist/tracks":{"get":{"summary":"Artist tracks","description":"An artist's public uploads, newest first. Pass the `cursor` from the previous response to page.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"soundcloud_artistTracks","tags":["soundcloud"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle (flume), or a full soundcloud.com profile URL","type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from the previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/soundcloud/track":{"get":{"summary":"Track details","description":"Public metadata for a SoundCloud track: plays, likes, reposts, comments, duration, genre and publisher metadata (ISRC, label, writers).\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"soundcloud_track","tags":["soundcloud"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Track URL, or \"user/track-slug\"","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/spotify/album":{"get":{"summary":"Album details","description":"Public Spotify album: title, artist, artwork and total runtime. The full track listing is in `raw` — add `include_raw=true`.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"spotify_album","tags":["spotify"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"id","in":"query","required":true,"schema":{"description":"Spotify album id, spotify:album: URI, or open.spotify.com album URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/spotify/artist":{"get":{"summary":"Artist details","description":"Public Spotify artist: name, artwork and current top tracks (in `raw`). Follower counts are not in Spotify's public embed payload and are returned as null unless SPOTIFY_CLIENT_ID/SECRET are configured — see /v1/spotify/search, which reads the official API.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"spotify_artist","tags":["spotify"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"id","in":"query","required":true,"schema":{"description":"Spotify artist id, spotify:artist: URI, or open.spotify.com artist URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/spotify/podcast":{"get":{"summary":"Podcast details","description":"A Spotify podcast: title, publisher, description, artwork and episode count. Uses Spotify's official Web API — the public embed for a show resolves to that show's latest EPISODE, not to the show itself, so there is no keyless route to this data.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"spotify_podcast","tags":["spotify"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"id","in":"query","required":true,"schema":{"description":"Spotify show id, spotify:show: URI, or open.spotify.com show URL","type":"string"}},{"name":"market","in":"query","required":false,"schema":{"description":"ISO 3166-1 alpha-2 market code","default":"US","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/spotify/podcast/episodes":{"get":{"summary":"Podcast episodes","description":"Episodes for a Spotify podcast, newest first. Pass the `cursor` from the previous response to page.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"spotify_podcastEpisodes","tags":["spotify"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"id","in":"query","required":true,"schema":{"description":"Spotify show id, spotify:show: URI, or open.spotify.com show URL","type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from the previous response","type":"string"}},{"name":"market","in":"query","required":false,"schema":{"description":"ISO 3166-1 alpha-2 market code","default":"US","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/spotify/search":{"get":{"summary":"Search","description":"Search Spotify's catalogue for tracks, albums, artists, podcasts or episodes. Uses Spotify's official Web API, so this endpoint needs app credentials; everything else on this platform is keyless.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"spotify_search","tags":["spotify"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":false,"parameters":[{"name":"query","in":"query","required":true,"schema":{"description":"Search terms","type":"string"}},{"name":"type","in":"query","required":false,"schema":{"default":"track","type":"string","enum":["track","album","artist","show","episode"]}},{"name":"limit","in":"query","required":false,"schema":{"default":20,"type":"number"}},{"name":"market","in":"query","required":false,"schema":{"description":"ISO 3166-1 alpha-2 market code","default":"US","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/spotify/track":{"get":{"summary":"Track details","description":"Public Spotify track: title, artists, artwork, duration, release date, explicit flag, and the preview clip URL.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"spotify_track","tags":["spotify"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"id","in":"query","required":true,"schema":{"description":"Spotify track id, spotify:track: URI, or open.spotify.com track URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/threads/post":{"get":{"summary":"Post","description":"A single public Threads post with like count, reply count, and any attached media.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"threads_post","tags":["threads"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Post URL (https://www.threads.com/@handle/post/ABC) or a shortcode","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/threads/profile":{"get":{"summary":"Profile","description":"Public Threads profile: follower count, bio, bio links, avatar, and verification status.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"threads_profile","tags":["threads"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle (@zuck) or a threads.com profile URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/threads/search":{"get":{"summary":"Search posts by keyword","description":"Public Threads posts matching a keyword.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"threads_search","tags":["threads"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"parameters":[{"name":"query","in":"query","required":true,"schema":{"description":"Keyword to search for","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/threads/search/users":{"get":{"summary":"Search users","description":"Public Threads accounts matching a keyword.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"threads_searchUsers","tags":["threads"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"parameters":[{"name":"query","in":"query","required":true,"schema":{"description":"Keyword or partial handle","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/threads/user/posts":{"get":{"summary":"User posts","description":"Recent public posts from a Threads profile, with like and reply counts.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"threads_userPosts","tags":["threads"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle (@zuck) or a threads.com profile URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/collection/videos":{"get":{"summary":"Collection videos","description":"Videos in a public TikTok collection — a creator-curated playlist of other people's posts as well as their own. Requires a configured TikTok signer.\n**Required:** Pass either `url` or `collection_id`.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_collectionVideos","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"x-parameter-constraints":["Pass either `url` or `collection_id`."],"parameters":[{"name":"url","in":"query","required":false,"schema":{"description":"Collection URL, e.g. https://www.tiktok.com/@nasa/collection/Artemis-7123…","type":"string"}},{"name":"collection_id","in":"query","required":false,"schema":{"description":"Numeric collection id","type":"string"}},{"name":"count","in":"query","required":false,"schema":{"description":"Items per page (default 20, max 30)","type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/comment-replies":{"get":{"summary":"Replies to a comment","description":"The reply thread under one TikTok comment. `parentId` on each reply points back at the comment it answers, so nested threads reconstruct cleanly. Requires a configured TikTok signer.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_commentReplies","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"comment_id","in":"query","required":true,"schema":{"description":"`id` of the parent comment, from `tiktok.comments`","type":"string"}},{"name":"url","in":"query","required":true,"schema":{"description":"The video the comment is on — URL, share link, or numeric id","type":"string"}},{"name":"count","in":"query","required":false,"schema":{"description":"Items per page (default 20, max 50)","type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/comments":{"get":{"summary":"Comments on a video","description":"Top-level comments on a TikTok, with like counts, reply counts, pinned status and a flag for the creator's own replies. Use `tiktok.commentReplies` to expand a thread. Requires a configured TikTok signer.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_comments","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Video URL (preferred), share link, or numeric video id","type":"string"}},{"name":"count","in":"query","required":false,"schema":{"description":"Items per page (default 20, max 50)","type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/creators/popular":{"get":{"summary":"Popular creators","description":"Creators trending in a market, from TikTok's own Creative Center leaderboard. Filter by country, follower band and category.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_popularCreators","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"x-experimental":true,"parameters":[{"name":"region","in":"query","required":false,"schema":{"description":"Two-letter market code (US, GB, ID…). TikTok feeds and catalogues are per-market.","type":"string"}},{"name":"period","in":"query","required":false,"schema":{"description":"Trailing window in days: 7, 30 or 120","default":"7","type":"string","enum":["7","30","120"]}},{"name":"follower_band","in":"query","required":false,"schema":{"description":"Restrict to creators in this follower range","type":"string","enum":["1k-10k","10k-100k","100k-1m","1m+"]}},{"name":"count","in":"query","required":false,"schema":{"description":"Items per page (default 20, max 50)","type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/followers":{"get":{"summary":"Accounts following a creator","description":"The public follower list for a TikTok account, newest first. TikTok caps how deep this list can be walked regardless of paging. Requires a configured TikTok signer.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_followers","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle (@nike), or a full tiktok.com profile URL","type":"string"}},{"name":"count","in":"query","required":false,"schema":{"description":"Items per page (default 30, max 50)","type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/following":{"get":{"summary":"Accounts a creator follows","description":"The accounts a TikTok creator follows, newest first. Hidden entirely when the creator has set their following list to private. Requires a configured TikTok signer.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_following","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle (@nike), or a full tiktok.com profile URL","type":"string"}},{"name":"count","in":"query","required":false,"schema":{"description":"Items per page (default 30, max 50)","type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/hashtag":{"get":{"summary":"Hashtag details","description":"Stats for a TikTok hashtag: total videos and total views, plus its description and cover. Read straight off the tag page, so it needs no signer.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_hashtag","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"hashtag","in":"query","required":true,"schema":{"description":"Tag without the # (fyp), or a full /tag/ URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/hashtag-videos":{"get":{"summary":"Videos using a hashtag","description":"TikToks carrying a given hashtag, in TikTok's own feed order. Resolves the tag to its numeric id from the tag page, then pages the feed — which needs a configured TikTok signer.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_hashtagVideos","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"x-experimental":true,"parameters":[{"name":"hashtag","in":"query","required":true,"schema":{"description":"Tag without the # (fyp), or a full /tag/ URL","type":"string"}},{"name":"count","in":"query","required":false,"schema":{"description":"Items per page (default 30, max 30)","type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/live":{"get":{"summary":"Live stream info","description":"Details of a creator's stream while they are live: room id, title, cover, current viewers and start time. A creator who is not live returns `empty_result`, which is a real answer and costs nothing — that makes this usable as a cheap \"are they live?\" poll.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_live","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle (@nike), or a full tiktok.com profile URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/playlist-videos":{"get":{"summary":"Videos in a playlist","description":"The videos inside one TikTok playlist, in the creator's chosen order. Requires a configured TikTok signer.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_playlistVideos","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"playlist_id","in":"query","required":true,"schema":{"description":"`id` from `tiktok.playlists`, or a /playlist/ URL","type":"string"}},{"name":"count","in":"query","required":false,"schema":{"description":"Items per page (default 30, max 30)","type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/playlists":{"get":{"summary":"A creator's playlists","description":"The playlists (TikTok calls them \"mixes\") a creator has organised their videos into. Pair with `tiktok.playlistVideos` to walk one. Requires a configured TikTok signer.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_playlists","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle (@nike), or a full tiktok.com profile URL","type":"string"}},{"name":"count","in":"query","required":false,"schema":{"description":"Items per page (default 20, max 30)","type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/product":{"get":{"summary":"Product details","description":"A single TikTok Shop product: title, price, images, rating, review and sales counts, and the seller. Read from the server-rendered product page, so it needs no signer.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_product","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Product id, or a tiktok.com/view/product/… URL","type":"string"}},{"name":"region","in":"query","required":false,"schema":{"description":"Two-letter market code (US, GB, ID…). TikTok feeds and catalogues are per-market.","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/profile":{"get":{"summary":"Profile details","description":"Public profile for a TikTok account: followers, following, video count, bio, bio link, verification and account region. Private accounts return their public shell with `isPrivate: true` rather than an error — that is a real answer, not a failure. Total likes received (TikTok's \"hearts\") is in `raw`, since it is a like total rather than the lifetime view count `viewCount` means elsewhere in the schema.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_profile","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle (@nike), or a full tiktok.com profile URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/profile/region":{"get":{"summary":"Creator region","description":"The market TikTok assigns a creator's account. Read from TikTok's own `region` field — on the profile where TikTok publishes one, otherwise from the region stamped on the creator's recent posts. Never inferred from language, timezone or content.\n**Required:** Pass either `handle` or `url`.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_profileRegion","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"x-parameter-constraints":["Pass either `handle` or `url`."],"parameters":[{"name":"handle","in":"query","required":false,"schema":{"description":"Creator handle, e.g. @nasa","type":"string"}},{"name":"url","in":"query","required":false,"schema":{"description":"Profile URL, e.g. https://www.tiktok.com/@nasa","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/search/keyword":{"get":{"summary":"Search videos by keyword","description":"TikToks matching a search term, with the same normalised engagement fields as every other post endpoint. `sort_by` and `date_posted` map onto TikTok's own search filters. Requires a configured TikTok signer.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_searchKeyword","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"x-experimental":true,"parameters":[{"name":"query","in":"query","required":true,"schema":{"description":"Search term","type":"string"}},{"name":"sort_by","in":"query","required":false,"schema":{"description":"TikTok's own two search orderings","default":"relevance","type":"string","enum":["relevance","most_liked"]}},{"name":"date_posted","in":"query","required":false,"schema":{"description":"Restrict to videos posted within this window","default":"all","type":"string","enum":["all","yesterday","week","month","three_months","six_months"]}},{"name":"count","in":"query","required":false,"schema":{"description":"Items per page (default 12, max 30)","type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/search/suggestions":{"get":{"summary":"Search suggestions","description":"TikTok's typeahead completions for a partial query — what the platform thinks people are looking for. Useful for keyword research.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_searchSuggestions","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"x-experimental":true,"parameters":[{"name":"query","in":"query","required":true,"schema":{"description":"Partial search term","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/search/top":{"get":{"summary":"Top (blended) search","description":"TikTok's blended \"Top\" search tab: the highest-ranked videos AND accounts for a query, returned as two typed lists. Requires a configured TikTok signer.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_searchTop","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"x-experimental":true,"parameters":[{"name":"query","in":"query","required":true,"schema":{"description":"Search terms","type":"string"}},{"name":"count","in":"query","required":false,"schema":{"description":"Items per page (default 12, max 30)","type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/search/users":{"get":{"summary":"Search creators","description":"TikTok accounts matching a query, with follower counts and verification. Requires a configured TikTok signer.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_searchUsers","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"x-experimental":true,"parameters":[{"name":"query","in":"query","required":true,"schema":{"description":"Search term","type":"string"}},{"name":"count","in":"query","required":false,"schema":{"description":"Items per page (default 12, max 30)","type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/shop/product/reviews":{"get":{"summary":"Product reviews","description":"Public reviews on a TikTok Shop product, with star rating, reviewer, photos and the purchased variant. Requires a configured TikTok signer.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_productReviews","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Product id, or a tiktok.com/view/product/… URL","type":"string"}},{"name":"count","in":"query","required":false,"schema":{"description":"Items per page (default 20, max 50)","type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"region","in":"query","required":false,"schema":{"description":"Two-letter market code (US, GB, ID…). TikTok feeds and catalogues are per-market.","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/shop/products":{"get":{"summary":"Seller's product catalogue","description":"Products listed by a TikTok Shop seller. Pass the seller's handle or a shop URL. Requires a configured TikTok signer.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_shopProducts","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Seller handle (@shopname) or a TikTok shop URL","type":"string"}},{"name":"count","in":"query","required":false,"schema":{"description":"Items per page (default 20, max 50)","type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"region","in":"query","required":false,"schema":{"description":"Two-letter market code (US, GB, ID…). TikTok feeds and catalogues are per-market.","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/shop/search":{"get":{"summary":"Search TikTok Shop","description":"Product search across TikTok Shop. Requires a configured TikTok signer.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_shopSearch","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"x-experimental":true,"parameters":[{"name":"query","in":"query","required":true,"schema":{"description":"Search terms","type":"string"}},{"name":"count","in":"query","required":false,"schema":{"description":"Items per page (default 20, max 50)","type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"region","in":"query","required":false,"schema":{"description":"Two-letter market code (US, GB, ID…). TikTok feeds and catalogues are per-market.","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/song":{"get":{"summary":"Sound / song details","description":"Details for a TikTok sound: title, artist, album, cover, clip length, and how many videos use it. Read from the music page, so it needs no signer.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_song","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"song","in":"query","required":true,"schema":{"description":"Music id, or a full tiktok.com/music/… URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/song-videos":{"get":{"summary":"Videos using a sound","description":"TikToks built on a given sound — the endpoint behind \"who is using my track\". Requires a configured TikTok signer.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_songVideos","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"x-experimental":true,"parameters":[{"name":"song","in":"query","required":true,"schema":{"description":"Music id, or a full tiktok.com/music/… URL","type":"string"}},{"name":"count","in":"query","required":false,"schema":{"description":"Items per page (default 30, max 30)","type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/songs/popular":{"get":{"summary":"Popular songs","description":"Sounds trending in a market — the endpoint behind music A&R and sync-licensing research. From TikTok's Creative Center.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_popularSongs","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"x-experimental":true,"parameters":[{"name":"region","in":"query","required":false,"schema":{"description":"Two-letter market code (US, GB, ID…). TikTok feeds and catalogues are per-market.","type":"string"}},{"name":"period","in":"query","required":false,"schema":{"description":"Trailing window in days: 7, 30 or 120","default":"7","type":"string","enum":["7","30","120"]}},{"name":"count","in":"query","required":false,"schema":{"description":"Items per page (default 20, max 50)","type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/transcript":{"get":{"summary":"Video transcript","description":"The spoken transcript of a TikTok, as one text block plus timed cues. Returns the ORIGINAL spoken-language track by default rather than whichever track TikTok lists first, so the text reflects what was actually said. Pass `language` for a specific track — a miss is an error listing what is available, never a silent substitution into another language.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_transcript","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Video URL (preferred), share link, or numeric video id","type":"string"}},{"name":"language","in":"query","required":false,"schema":{"description":"BCP-47 or ISO-639 code, e.g. \"en\", \"es\", \"pt-BR\". Omit for the original spoken track.","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/trending":{"get":{"summary":"Trending feed","description":"TikTok's logged-out For You feed for a region — what the platform is pushing to a brand-new visitor right now. Not a ranking anyone can reproduce: TikTok personalises even the anonymous feed, so two calls a second apart return different videos. Requires a configured TikTok signer.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_trending","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"x-experimental":true,"parameters":[{"name":"region","in":"query","required":false,"schema":{"description":"Two-letter country code, e.g. US, GB, DE","default":"US","type":"string"}},{"name":"count","in":"query","required":false,"schema":{"description":"Items per page (default 30, max 30)","type":"number"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/user-videos":{"get":{"summary":"Videos posted by a creator","description":"A creator's public posts, newest first, with view/like/comment/share counts. Photo posts are included and typed as `image` or `carousel`. Paging past the first response requires a configured TikTok signer; without one the first page still returns from the profile page itself, and `raw.via` says which path answered.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_userVideos","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle (@nike), or a full tiktok.com profile URL","type":"string"}},{"name":"count","in":"query","required":false,"schema":{"description":"Items per page (default 35, max 35)","type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/user/showcase":{"get":{"summary":"Creator's product showcase","description":"Products a creator has pinned to their profile showcase — what they are actually promoting, as opposed to what they sell. Requires a configured TikTok signer.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_userShowcase","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Creator handle, e.g. @charlidamelio","type":"string"}},{"name":"count","in":"query","required":false,"schema":{"description":"Items per page (default 20, max 50)","type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"region","in":"query","required":false,"schema":{"description":"Two-letter market code (US, GB, ID…). TikTok feeds and catalogues are per-market.","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/video":{"get":{"summary":"Video or photo-post details","description":"Full public metadata for one TikTok: caption, hashtags, mentions, author, sound, duration, and view/like/comment/share counts. Photo posts return every image in `mediaUrls`. Accepts a full URL, a share link (vm.tiktok.com), or a numeric video id.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_video","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Video URL (preferred), share link, or numeric video id","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/tiktok/videos/popular":{"get":{"summary":"Popular videos","description":"Videos trending in a market over a trailing window, from TikTok's Creative Center. Distinct from `/v1/tiktok/trending`, which is the personalised For You feed.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"tiktok_popularVideos","tags":["tiktok"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"x-experimental":true,"parameters":[{"name":"region","in":"query","required":false,"schema":{"description":"Two-letter market code (US, GB, ID…). TikTok feeds and catalogues are per-market.","type":"string"}},{"name":"period","in":"query","required":false,"schema":{"description":"Trailing window in days: 7, 30 or 120","default":"7","type":"string","enum":["7","30","120"]}},{"name":"count","in":"query","required":false,"schema":{"description":"Items per page (default 20, max 50)","type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/truthsocial/post":{"get":{"summary":"Post","description":"A single public Truth with its engagement counts and attached media.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"truthsocial_post","tags":["truthsocial"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Post URL (https://truthsocial.com/@handle/posts/<id>) or a bare numeric post id","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/truthsocial/profile":{"get":{"summary":"Profile","description":"Public Truth Social profile: follower and following counts, Truth count, bio, avatar, header image, and verification status.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"truthsocial_profile","tags":["truthsocial"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle (@realDonaldTrump) or a truthsocial.com profile URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/truthsocial/user/posts":{"get":{"summary":"User posts","description":"Recent public Truths from an account, newest first, with favourite, reply and ReTruth counts.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"truthsocial_userPosts","tags":["truthsocial"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle or profile URL","type":"string"}},{"name":"user_id","in":"query","required":false,"schema":{"description":"Numeric account id, if you already have it","type":"string"}},{"name":"count","in":"query","required":false,"schema":{"default":20,"type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response (Mastodon `max_id`)","type":"string"}},{"name":"exclude_replies","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/twitch/clip":{"get":{"summary":"Clip details","description":"Public metadata for a Twitch clip: views, duration, creator, broadcaster, category, and the offset into the source VOD.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"twitch_clip","tags":["twitch"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Clip URL (twitch.tv/<channel>/clip/<slug> or clips.twitch.tv/<slug>) or a bare slug","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/twitch/profile":{"get":{"summary":"Channel profile","description":"Public Twitch channel: followers, partner/affiliate status, bio, avatar, banner, account age, and whether the channel is live right now.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"twitch_profile","tags":["twitch"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Channel login (shroud), or a twitch.tv URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/twitch/user/schedule":{"get":{"summary":"Stream schedule","description":"A channel's published schedule for the current week, plus the next upcoming segment. Segments are returned as posts of type `live` whose `publishedAt` is the scheduled start time.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"twitch_userSchedule","tags":["twitch"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":false,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Channel login (hasanabi), or a twitch.tv URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/twitch/user/videos":{"get":{"summary":"Channel videos","description":"A channel's public VODs, highlights or uploads. Returns up to 100 per call — Twitch gates deeper pages behind a browser integrity challenge, and we do not run browser sessions.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"twitch_userVideos","tags":["twitch"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Channel login (shroud), or a twitch.tv URL","type":"string"}},{"name":"filter_by","in":"query","required":false,"schema":{"description":"archive = past broadcasts, highlight = clipped highlights, upload = uploaded videos","default":"archive","type":"string","enum":["archive","highlight","upload"]}},{"name":"sort_by","in":"query","required":false,"schema":{"default":"time","type":"string","enum":["time","views"]}},{"name":"limit","in":"query","required":false,"schema":{"default":30,"type":"number"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/twitter/community":{"get":{"summary":"Community details","description":"Public details for an X Community: name, description, member count, topic, join policy, banner and the creator's handle. Read from the server-rendered community page, which X still serves to logged-out callers.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"twitter_community","tags":["twitter"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Community URL (x.com/i/communities/...) or the numeric id","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/twitter/community/tweets":{"get":{"summary":"Community posts","description":"Recent posts in an X Community, with likes, retweets, replies and **view counts** — the community page publishes metrics X's embed CDN does not. One page only: X serves logged-out callers a single rendered batch and no continuation token, so `hasMore` is always false.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"twitter_communityTweets","tags":["twitter"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":false,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Community URL (x.com/i/communities/...) or the numeric id","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/twitter/profile":{"get":{"summary":"Profile details","description":"Public profile for an X account. With TWITTER_BEARER_TOKEN set this is the full profile — bio, location, follower/following/post counts, join date. Without one, X exposes only handle, id, display name, avatar and verified status to logged-out callers, and the call is refunded to 0 credits because that is not worth charging for.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"twitter_profile","tags":["twitter"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle (@jack), or a full x.com profile URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/twitter/tweet":{"get":{"summary":"Post details","description":"One public post with its text, media and engagement. Served from X's embed CDN, which is the most durable logged-out surface X still operates; with TWITTER_BEARER_TOKEN set it uses the official API instead and adds retweet, quote and impression counts.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"twitter_tweet","tags":["twitter"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Post URL (x.com/user/status/123...) or a bare post id","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/twitter/tweet/transcript":{"get":{"summary":"Post transcript","description":"Captions for a video post on X, as one text block plus timed cues. Sourced from the caption track in the video's HLS playlist, which is the only transcript X exposes to logged-out callers — posts whose author never attached captions return an empty result and are not charged.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"twitter_tweetTranscript","tags":["twitter"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Post URL (x.com/user/status/123...) or a bare post id","type":"string"}},{"name":"language","in":"query","required":false,"schema":{"description":"BCP-47 code, e.g. \"en\". Defaults to the first track.","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/twitter/user-tweets":{"get":{"summary":"Recent posts from an account","description":"An account's recent public posts. With TWITTER_BEARER_TOKEN this pages through the timeline with real engagement metrics; without one it returns the single page X's embedded timeline exposes (roughly 20 posts, likes and replies only).\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"twitter_userTweets","tags":["twitter"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":true,"x-subscribable":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle (@jack), or a full x.com profile URL","type":"string"}},{"name":"count","in":"query","required":false,"schema":{"description":"Posts per page, 5-100. Default 20. Official API only.","type":"number"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response. Official API only.","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/youtube/channel":{"get":{"summary":"Channel details","description":"Public details for a YouTube channel: subscribers, video count, description, links.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"youtube_channel","tags":["youtube"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle (@mrbeast), channel id (UC...), or full URL","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/youtube/channel-videos":{"get":{"summary":"Channel videos","description":"Recent public uploads for a channel. Use `tab` to switch between videos and shorts.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"youtube_channelVideos","tags":["youtube"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle (@mrbeast), channel id, or full URL","type":"string"}},{"name":"tab","in":"query","required":false,"schema":{"default":"videos","type":"string","enum":["videos","shorts","streams"]}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/youtube/channel/community-posts":{"get":{"summary":"Channel community posts","description":"A channel's Posts tab (what YouTube used to call Community). Images, multi-image carousels, shared videos and polls all come back as posts; poll options are under `raw`.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"youtube_channelCommunityPosts","tags":["youtube"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle (@mrbeast), channel id (UC…), or full URL","type":"string"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/youtube/channel/lives":{"get":{"summary":"Channel live streams","description":"A channel's Live tab: streams that are live now, scheduled, or finished and still on the tab. `viewCount` is concurrent viewers while a stream is live and total views once it ends — YouTube swaps the label, and we surface whichever it gave us.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"youtube_channelLives","tags":["youtube"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle (@mrbeast), channel id (UC…), or full URL","type":"string"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/youtube/channel/playlists":{"get":{"summary":"Channel playlists","description":"Playlists a channel has made public. Pass an `id` from here to /v1/youtube/playlist for the videos in it.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"youtube_channelPlaylists","tags":["youtube"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle (@mrbeast), channel id (UC…), or full URL","type":"string"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/youtube/channel/shorts":{"get":{"summary":"Channel shorts","description":"A channel's Shorts grid, newest first, about 48 per page. Shorts carry no duration or publish date on this surface — YouTube does not render either — so both are null rather than guessed.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"youtube_channelShorts","tags":["youtube"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"description":"Handle (@mrbeast), channel id (UC…), or full URL","type":"string"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/youtube/community-post":{"get":{"summary":"Community post details","description":"One community post by id or permalink, with its full text, attachments and like count. Poll questions and options are under `raw`. `commentCount` is null on this surface: the standalone post page does not render one, while /v1/youtube/channel/community-posts does.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"youtube_communityPost","tags":["youtube"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Post URL (youtube.com/post/Ugk…) or bare post id","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/youtube/playlist":{"get":{"summary":"Playlist contents","description":"The videos in a public playlist, in playlist order, 100 per page. Playlist metadata (title, description, owner) comes back alongside the items.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"youtube_playlist","tags":["youtube"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"playlist_id","in":"query","required":true,"schema":{"description":"Playlist id (PL…), or any URL containing `list=`","type":"string"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/youtube/search":{"get":{"summary":"Search videos","description":"Public YouTube search results for a query.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"youtube_search","tags":["youtube"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":false,"parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/youtube/search/hashtag":{"get":{"summary":"Search by hashtag","description":"Videos or Shorts carrying a hashtag, as YouTube ranks them on the hashtag landing page. `type=shorts` switches to the Shorts tab, which is a different result set rather than a filter over the same one.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"youtube_searchHashtag","tags":["youtube"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":false,"parameters":[{"name":"hashtag","in":"query","required":true,"schema":{"description":"Hashtag, with or without the leading #","type":"string"}},{"name":"type","in":"query","required":false,"schema":{"default":"all","type":"string","enum":["all","shorts"]}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/youtube/search/typeahead":{"get":{"summary":"Search typeahead","description":"YouTube's own search suggestions for a partial query — the autocomplete list the search box shows. Useful as a keyword-research signal: these are ranked by what people actually search for.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"youtube_searchTypeahead","tags":["youtube"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":false,"parameters":[{"name":"query","in":"query","required":true,"schema":{"description":"Partial search query","type":"string"}},{"name":"region","in":"query","required":false,"schema":{"description":"ISO 3166-1 alpha-2 country code","default":"US","type":"string"}},{"name":"language","in":"query","required":false,"schema":{"description":"Interface language","default":"en","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/youtube/shorts/trending":{"get":{"summary":"Trending shorts","description":"Shorts YouTube is currently surfacing, by region. Note that YouTube retired the global Trending feed — /feed/trending now serves the ordinary home feed — so this reads the ranked Shorts surface instead, which is what still exists. Results differ per request; it is deliberately not subscribable.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"youtube_trendingShorts","tags":["youtube"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":false,"parameters":[{"name":"region","in":"query","required":false,"schema":{"description":"ISO 3166-1 alpha-2 country code","default":"US","type":"string"}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/youtube/transcript":{"get":{"summary":"Video transcript","description":"Full transcript for a YouTube video, as one text block plus timed cues. Returns the requested language when available, otherwise the default track.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"youtube_transcript","tags":["youtube"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Video URL or 11-character video id","type":"string"}},{"name":"language","in":"query","required":false,"schema":{"description":"BCP-47 language code, e.g. \"en\", \"es\"","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/youtube/video":{"get":{"summary":"Video or Short details","description":"Public metadata for a YouTube video or Short, including view/like counts.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"youtube_video","tags":["youtube"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Video URL or 11-character video id","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/youtube/video/comment-replies":{"get":{"summary":"Comment replies","description":"Replies to one comment thread. Takes a `cursor` from the `replyCursors` list on `/v1/youtube/video/comments`, or — as a convenience — a video `url` plus `comment_id`, in which case we locate the thread on the first comment page for you.\n**Required:** Pass either `cursor` (from `replyCursors` on /v1/youtube/video/comments), or both `url` and `comment_id`.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"youtube_commentReplies","tags":["youtube"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"x-parameter-constraints":["Pass either `cursor` (from `replyCursors` on /v1/youtube/video/comments), or both `url` and `comment_id`."],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"description":"Reply cursor from `/v1/youtube/video/comments`, or `pagination.cursor` to page deeper","type":"string"}},{"name":"url","in":"query","required":false,"schema":{"description":"Video URL or id — required only when using `comment_id`","type":"string"}},{"name":"comment_id","in":"query","required":false,"schema":{"description":"Top-level comment id (Ugx…) to fetch replies for","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/youtube/video/comments":{"get":{"summary":"Video comments","description":"Top-level comments on a video, about 20 per page. Pass `pagination.cursor` back as `cursor` for the next page. Each item that has replies also appears in `replyCursors`; feed that cursor to `/v1/youtube/video/comment-replies`. Use `order=newest` when polling for new comments — `top` is re-ranked by YouTube and will churn.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"youtube_videoComments","tags":["youtube"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Video URL or 11-character video id","type":"string"}},{"name":"order","in":"query","required":false,"schema":{"default":"top","type":"string","enum":["top","newest"]}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`pagination.cursor` from a previous response","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}},"/v1/youtube/video/sponsors":{"get":{"summary":"Video sponsors (inferred)","description":"Brands, promo codes and affiliate links inferred from a video's description, plus YouTube's own paid-promotion disclosure. Every signal carries the description line it was read from and a confidence, because this is inference over prose — YouTube publishes no structured sponsor data. Experimental: expect to check `evidence` before acting on `low` confidence.\n**Cost:** 1 credit per live request.\n**Cache hits cost 0 credits.**\nFailed and empty responses are never charged.","operationId":"youtube_videoSponsors","tags":["youtube"],"x-credit-cost":1,"x-render-credit-multiplier":3,"x-cacheable":true,"x-batchable":true,"x-requires-residential-proxy":false,"x-subscribable":true,"x-experimental":true,"parameters":[{"name":"url","in":"query","required":true,"schema":{"description":"Video URL or 11-character video id","type":"string"}},{"name":"cache_max_age","in":"query","required":false,"schema":{"type":"string"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean"}}],"security":[{"apiKeyAuth":[]}],"responses":{"200":{"description":"Success"},"400":{"description":"invalid_request — not charged"},"401":{"description":"missing_api_key / invalid_api_key / revoked_api_key — never a billing error"},"402":{"description":"insufficient_credits — the key is valid, the balance is not"},"429":{"description":"daily_cap_exceeded or upstream_rate_limited — not charged"},"501":{"description":"not_configured — server is missing credentials or proxies"},"502":{"description":"upstream_blocked / upstream_schema_drift — not charged"},"504":{"description":"upstream_timeout — not charged"}}}}}}