{"openapi":"3.1.0","info":{"title":"Gridlode API","version":"1.0.0","description":"Places, search results and domain intelligence behind one key and one credit wallet. Failed requests are never charged.","contact":{"name":"Gridlode","email":"support@gridlode.com","url":"https://gridlode.com"}},"servers":[{"url":"https://api.gridlode.com"}],"security":[{"bearer":[]},{"apiKeyQuery":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Authorization: Bearer sk_live_..."},"apiKeyQuery":{"type":"apiKey","in":"query","name":"api_key"}}},"paths":{"/v1/account":{"get":{"operationId":"getAccount","summary":"Account balance","tags":["Account"],"responses":{"200":{"description":"Balance in credits"}}}},"/v1/engines":{"get":{"operationId":"listEngines","summary":"List all engines with credit prices and parameters","tags":["Account"],"security":[],"responses":{"200":{"description":"Engine catalog"}}}},"/v1/tasks":{"post":{"operationId":"createTask","summary":"Create a bulk job","tags":["Bulk jobs"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["engine"],"properties":{"engine":{"type":"string","description":"Engine slug, e.g. domain.tech"},"inputs":{"type":"array","items":{"type":"string"}},"field":{"type":"string","description":"Parameter the inputs fill"},"items":{"type":"array","items":{"type":"object"}},"params":{"type":"object","description":"Merged into every item"},"name":{"type":"string"},"webhook_url":{"type":"string","format":"uri"}}}}}},"responses":{"200":{"description":"Job created"},"201":{"description":"Job created; webhook_secret shown once"},"400":{"description":"Invalid request"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Not found"}}},"get":{"operationId":"listTasks","summary":"List your bulk jobs","tags":["Bulk jobs"],"responses":{"200":{"description":"Jobs"},"400":{"description":"Invalid request"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Not found"}}}},"/v1/tasks/{id}":{"get":{"operationId":"getTask","summary":"Get a bulk job","tags":["Bulk jobs"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Job"},"400":{"description":"Invalid request"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Not found"}}}},"/v1/tasks/{id}/cancel":{"post":{"operationId":"cancelTask","summary":"Cancel a bulk job","tags":["Bulk jobs"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Cancelled job"},"400":{"description":"Invalid request"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Not found"}}}},"/v1/tasks/{id}/results":{"get":{"operationId":"getTaskResults","summary":"Download job results","tags":["Bulk jobs"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"format","in":"query","schema":{"type":"string","enum":["json","csv","ndjson"],"default":"json"}}],"responses":{"200":{"description":"Results"},"400":{"description":"Invalid request"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Not found"}}}},"/v1/monitors":{"post":{"operationId":"createMonitor","summary":"Create a monitor","tags":["Monitors"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"template":{"type":"string","enum":["domain_expiry","ssl_expiry","dns_change","email_security","page_change","serp_rank","app_store_reviews","google_play_reviews","new_reviews"]},"target":{"type":"string"},"options":{"type":"object"},"engine":{"type":"string"},"params":{"type":"object"},"watch":{"type":"array","items":{"type":"string"}},"conditions":{"type":"array","items":{"type":"object"}},"interval_minutes":{"type":"integer","minimum":60},"webhook_url":{"type":"string","format":"uri"},"notify_email":{"type":"boolean"},"name":{"type":"string"}}}}}},"responses":{"200":{"description":"Monitor created"},"201":{"description":"Monitor created"},"400":{"description":"Invalid request"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Not found"}}},"get":{"operationId":"listMonitors","summary":"List monitors","tags":["Monitors"],"responses":{"200":{"description":"Monitors"},"400":{"description":"Invalid request"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Not found"}}}},"/v1/monitors/templates":{"get":{"operationId":"listMonitorTemplates","summary":"Monitor templates","tags":["Monitors"],"security":[],"responses":{"200":{"description":"Templates"},"400":{"description":"Invalid request"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Not found"}}}},"/v1/monitors/events":{"get":{"operationId":"listMonitorEvents","summary":"Recent events across monitors","tags":["Monitors"],"responses":{"200":{"description":"Events"},"400":{"description":"Invalid request"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Not found"}}}},"/v1/monitors/{id}":{"get":{"operationId":"getMonitor","summary":"Get a monitor","tags":["Monitors"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Monitor"},"400":{"description":"Invalid request"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Not found"}}},"patch":{"operationId":"updateMonitor","summary":"Update a monitor","tags":["Monitors"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string"},"status":{"type":"string","enum":["active","paused"]},"interval_minutes":{"type":"integer","minimum":60},"notify_email":{"type":"boolean"},"webhook_url":{"type":["string","null"]}}}}}},"responses":{"200":{"description":"Updated monitor"},"400":{"description":"Invalid request"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Not found"}}},"delete":{"operationId":"deleteMonitor","summary":"Delete a monitor and its history","tags":["Monitors"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Deleted"},"400":{"description":"Invalid request"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Not found"}}}},"/v1/monitors/{id}/run":{"post":{"operationId":"runMonitor","summary":"Check a monitor now","tags":["Monitors"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Check result"},"400":{"description":"Invalid request"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Not found"}}}},"/v1/monitors/{id}/events":{"get":{"operationId":"getMonitorEvents","summary":"A monitor's events","tags":["Monitors"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Events"},"400":{"description":"Invalid request"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Not found"}}}},"/v1/monitors/{id}/history":{"get":{"operationId":"getMonitorHistory","summary":"A monitor's snapshots","tags":["Monitors"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Snapshots"},"400":{"description":"Invalid request"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Not found"}}}},"/v1/ai/extract":{"get":{"operationId":"ai_extract","summary":"AI Data Extraction","description":"Structured JSON from any web page, extracted by Claude. Give a URL and either a JSON Schema or a plain list of the fields you want (with optional instructions); the page is fetched (optionally rendered in Chrome), reduced to its main content as Markdown and read by the model, which only returns values that appear on the page. Billed by the model's actual token usage plus one credit for the page, never above your max_credits.\n\nCost: 1 credit(s) per credit. Failed requests are free.","tags":["ai"],"parameters":[{"name":"url","in":"query","required":true,"description":"Public http(s) URL of the page to extract from.","schema":{"type":"string"}},{"name":"schema","in":"query","required":false,"description":"JSON Schema of the object to return. Give schema or fields.","schema":{"type":"string","default":null}},{"name":"fields","in":"query","required":false,"description":"Field names to extract, optionally with a description: ['company', 'price: monthly price of the cheapest plan'] or {'company': 'company name'}. Give schema or fields.","schema":{"type":"string","default":null}},{"name":"instructions","in":"query","required":false,"description":"Extra guidance for the extraction, e.g. 'prices in EUR only'.","schema":{"type":"string","default":null}},{"name":"render","in":"query","required":false,"description":"Render JavaScript in real Chrome before reading the page (+1 credit).","schema":{"type":"boolean","default":false}},{"name":"wait_ms","in":"query","required":false,"description":"With render=true: extra wait after load.","schema":{"type":"integer","default":1000}},{"name":"content","in":"query","required":false,"description":"'main' = the page's main content as Markdown (boilerplate removed); 'full' = all visible text.","schema":{"type":"string","default":"main"}},{"name":"include_links","in":"query","required":false,"description":"Keep link URLs in the text sent to the model.","schema":{"type":"boolean","default":false}},{"name":"respect_robots","in":"query","required":false,"description":"Refuse URLs disallowed by the site's robots.txt.","schema":{"type":"boolean","default":true}},{"name":"max_chars","in":"query","required":false,"description":"Truncate the page text to this many characters (the server limit applies when lower; default 60,000).","schema":{"type":"string","default":null}},{"name":"max_credits","in":"query","required":false,"description":"The most this call may cost. The actual charge follows the model's token usage and is never higher.","schema":{"type":"integer","default":150}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/ai/review-insights":{"get":{"operationId":"ai_review_insights","summary":"AI Review Insights","description":"Turns a set of customer reviews into insights with Claude: overall sentiment and score, the sentiment of every review and the resulting distribution, the top positive and negative themes with how many reviews mention each and verbatim example quotes, the average rating, and a short summary. Send up to 1,000 review texts (with optional ratings) or let it fetch them from a review engine. Billed by the model's actual token usage (plus the source engine's credits), never above your max_credits.\n\nCost: 1 credit(s) per credit. Failed requests are free.","tags":["ai"],"parameters":[{"name":"reviews","in":"query","required":false,"description":"Reviews to analyse: strings, or objects {text, rating, id}. Give reviews or source.","schema":{"type":"string","default":null}},{"name":"source","in":"query","required":false,"description":"Fetch the reviews with a review engine instead: {engine, params}. That engine's own credits are included in the charge.","schema":{"type":"string","default":null}},{"name":"language","in":"query","required":false,"description":"Language for the summary and theme names (quotes stay verbatim).","schema":{"type":"string","default":"en"}},{"name":"max_themes","in":"query","required":false,"description":"Themes per side (positive / negative).","schema":{"type":"integer","default":5}},{"name":"max_chars","in":"query","required":false,"description":"Review text sent to the model is cut at this many characters (server limit applies when lower).","schema":{"type":"string","default":null}},{"name":"max_credits","in":"query","required":false,"description":"The most this call may cost, source engine included. The actual charge follows token usage and is never higher.","schema":{"type":"integer","default":150}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/apps/app-store/app":{"get":{"operationId":"apps_app_store_app","summary":"App Store App Details","description":"One Apple App Store app by numeric ID, App Store URL or bundle ID, in any country storefront: title, developer and seller, price and currency, average rating and rating count (all versions and current version), version and release notes, release and last-update dates, description, genres, content rating and advisories, file size, minimum OS, supported languages, icon and iPhone, iPad and Apple TV screenshots. Uses Apple's public iTunes Lookup API; no account or key. Apps that are not found, and failed requests, are free.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["apps"],"parameters":[{"name":"app_id","in":"query","required":false,"description":"Numeric App Store id (570060128), 'id570060128' or an apps.apple.com app URL. Give app_id or bundle_id.","schema":{"type":"string","default":null}},{"name":"bundle_id","in":"query","required":false,"description":"Bundle identifier, e.g. com.duolingo.DuolingoMobile.","schema":{"type":"string","default":null}},{"name":"country","in":"query","required":false,"description":"Two-letter App Store country (storefront), e.g. us, gb, de, jp. Prices, ratings and availability are per storefront.","schema":{"type":"string","default":"us"}},{"name":"lang","in":"query","required":false,"description":"Language for the title and description where the storefront offers several, e.g. en-US. Default: the storefront's own language.","schema":{"type":"string","default":null}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/apps/app-store/search":{"get":{"operationId":"apps_app_store_search","summary":"App Store Search","description":"Search the Apple App Store by keyword in any country storefront, for iPhone, iPad or Mac apps: up to 200 apps in Apple's ranking order, each with app ID, bundle ID, title, developer, price, rating and rating count, current version, release and update dates, genres, content rating, size, supported languages, minimum OS, icon, screenshots and the full description. Uses Apple's public iTunes Search API; no account or key. Failed or rate-limited requests are free.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["apps"],"parameters":[{"name":"q","in":"query","required":true,"description":"Search term, e.g. 'language learning' or an app or developer name.","schema":{"type":"string"}},{"name":"country","in":"query","required":false,"description":"Two-letter App Store country (storefront), e.g. us, gb, de, jp.","schema":{"type":"string","default":"us"}},{"name":"platform","in":"query","required":false,"description":"Which store to search: iPhone apps, iPad-only apps or Mac apps.","schema":{"type":"string","default":"iphone"}},{"name":"lang","in":"query","required":false,"description":"Language for titles and descriptions where the storefront offers several, e.g. en-US, ja-JP. Default: the storefront's own language.","schema":{"type":"string","default":null}},{"name":"limit","in":"query","required":false,"description":"Maximum apps to return (1-200).","schema":{"type":"integer","default":25}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/apps/google-play/app":{"get":{"operationId":"apps_google_play_app","summary":"Google Play App Details","description":"One Google Play app by package name or Play URL, in any language and country: title, developer (name, ID, website, support email, privacy policy), summary and full description, star rating, ratings and reviews counts, 1-5 star histogram, install bracket and Google's install estimate, price and currency, in-app purchases and ads flags, category and tags, content rating, release and last-update dates, version and minimum Android version, what's new, icon, screenshots, video, top-chart rank and the data-safety summary. Collected as a signed-out visitor; never logged in. Unknown apps and failed requests are free.\n\nCost: 2 credit(s) per request. Failed requests are free.","tags":["apps"],"parameters":[{"name":"app_id","in":"query","required":true,"description":"Google Play package name, e.g. com.duolingo, or a play.google.com app URL.","schema":{"type":"string"}},{"name":"hl","in":"query","required":false,"description":"Language of the listing text, e.g. en, de, pt-BR.","schema":{"type":"string","default":"en"}},{"name":"gl","in":"query","required":false,"description":"Two-letter country whose Play Store to read, e.g. us, gb, in. Price, availability and ratings can differ by country.","schema":{"type":"string","default":"us"}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/apps/google-play/search":{"get":{"operationId":"apps_google_play_search","summary":"Google Play Search","description":"Google Play app search results for any query, language and country, in Play's own order (up to the 30 apps its search page lists, with the exact-name featured app first when there is one): package name, title, developer, star rating, install bracket, price, in-app purchases flag, category, content rating, short description, icon and screenshots, plus Play's related searches. Collected as a signed-out visitor. Blocked or failed requests are free.\n\nCost: 2 credit(s) per request. Failed requests are free.","tags":["apps"],"parameters":[{"name":"q","in":"query","required":true,"description":"Search query, e.g. 'language learning' or an app name.","schema":{"type":"string"}},{"name":"hl","in":"query","required":false,"description":"Language of titles and descriptions, e.g. en, de, pt-BR.","schema":{"type":"string","default":"en"}},{"name":"gl","in":"query","required":false,"description":"Two-letter country whose Play Store to search, e.g. us, gb, in.","schema":{"type":"string","default":"us"}},{"name":"limit","in":"query","required":false,"description":"Maximum apps to return (1-30, the results Google Play shows on its search page).","schema":{"type":"integer","default":30}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/github/repo":{"get":{"operationId":"code_github_repo","summary":"GitHub Repository","description":"Everything public about a GitHub repository from its logged-out pages: description, homepage, topics, stars, forks, watchers, open issues and pull requests, languages breakdown, license, default branch, latest release, last commit, commit / release / contributor counts, archive and fork flags, and the README as markdown. No GitHub token and no API rate limit involved.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["code"],"parameters":[{"name":"repo","in":"query","required":true,"description":"Repository as owner/name (pallets/flask) or its github.com URL.","schema":{"type":"string"}},{"name":"include_readme","in":"query","required":false,"description":"Also return the README text (one extra small request).","schema":{"type":"boolean","default":true}},{"name":"readme_max_chars","in":"query","required":false,"description":"Truncate the README to this many characters.","schema":{"type":"integer","default":20000}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/github/search":{"get":{"operationId":"code_github_search","summary":"GitHub Repository Search","description":"Search GitHub repositories with every GitHub search qualifier (language:, stars:, topic:, org:, pushed:, archived: and more): name, owner, description, homepage, stars, forks, open issues, language, topics, license, default branch and created / updated / pushed dates for up to 100 repositories per page, plus the total match count. Sort by best match, stars, forks, recent updates or help-wanted issues.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["code"],"parameters":[{"name":"q","in":"query","required":true,"description":"Search terms with any GitHub qualifiers: language:python stars:>1000 topic:cli org:pallets pushed:>2026-01-01 archived:false in:name,description.","schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"description":"best (best match), stars, forks, updated (recently updated) or help_wanted_issues.","schema":{"type":"string","default":"best"}},{"name":"order","in":"query","required":false,"description":"Sort direction (ignored for best match).","schema":{"type":"string","default":"desc"}},{"name":"page","in":"query","required":false,"description":"Results page.","schema":{"type":"integer","default":1}},{"name":"per_page","in":"query","required":false,"description":"Repositories per page (1-100). GitHub serves at most the first 1,000 matches.","schema":{"type":"integer","default":10}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/github/trending":{"get":{"operationId":"code_github_trending","summary":"GitHub Trending","description":"Today's trending repositories on GitHub, overall or for one programming language and spoken language: name, description, language, total stars, forks, stars gained today and the top contributors (\"built by\"). The same list as github.com/trending, as JSON.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["code"],"parameters":[{"name":"language","in":"query","required":false,"description":"Programming language as GitHub names it in URLs, e.g. python, javascript, rust, c++, c#, jupyter-notebook. Empty for all languages.","schema":{"type":"string","default":null}},{"name":"since","in":"query","required":false,"description":"Ranking period. Only daily is served: GitHub's robots.txt disallows the since= parameter, so weekly and monthly are refused (never charged).","schema":{"type":"string","default":"daily"}},{"name":"spoken_language_code","in":"query","required":false,"description":"Only repositories whose README is in this spoken language (ISO 639-1, e.g. en, zh, es).","schema":{"type":"string","default":null}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/github/user":{"get":{"operationId":"code_github_user","summary":"GitHub User & Organization","description":"Public GitHub profile of a user or organization: name, bio, company, location, website, social links, followers and following, public repository count, organizations, and the pinned or most popular repositories with stars, forks and language. For organizations also the verified domains, top languages, topics and recently updated repositories. Email addresses are never returned.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["code"],"parameters":[{"name":"username","in":"query","required":true,"description":"GitHub user or organisation login (torvalds, python) or its github.com profile URL.","schema":{"type":"string"}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/contacts/company-website":{"get":{"operationId":"contacts_company_website","summary":"Company Website Finder","description":"The official website of a company from its name (plus optional country and city). Searches Bing and DuckDuckGo, ignores directories, social networks, marketplaces and news sites (LinkedIn, Facebook, Yelp, Crunchbase, Wikipedia, Bloomberg, Amazon ...), scores each remaining domain by name similarity, title match, home-page position and agreement between the engines, then opens the top candidates' home pages to confirm the title and follow redirects. Returns the best domain with a confidence score and ranked alternatives.\n\nCost: 2 credit(s) per request. Failed requests are free.","tags":["contacts"],"parameters":[{"name":"company","in":"query","required":true,"description":"Company or organization name, e.g. 'Stripe' or 'Hetzner Online GmbH'.","schema":{"type":"string"}},{"name":"country","in":"query","required":false,"description":"Two-letter country code (de, us, gb ...) to search that market; other text is added to the query as is.","schema":{"type":"string","default":null}},{"name":"city","in":"query","required":false,"description":"City, added to the search query.","schema":{"type":"string","default":null}},{"name":"verify","in":"query","required":false,"description":"Fetch the top candidates' home pages to confirm the title matches and to follow redirects to the final domain.","schema":{"type":"boolean","default":true}},{"name":"respect_robots","in":"query","required":false,"description":"Skip home-page verification where robots.txt disallows it.","schema":{"type":"boolean","default":true}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/contacts/email-check":{"get":{"operationId":"contacts_email_check","summary":"Email Checker","description":"Deliverability checks without contacting the mailbox: syntax, normalized address, whether the domain exists, its mail servers (MX, sorted by priority) and null-MX policy, plus disposable-domain, role-account (info@, sales@) and free-provider flags and a suggestion for common typos such as gmial.com. Returns a verdict (deliverable_unknown, risky or undeliverable) with reasons. The mailbox itself is never probed over SMTP, so \"deliverable_unknown\" means the address looks fine but is not confirmed.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["contacts"],"parameters":[{"name":"email","in":"query","required":true,"description":"Email address to check, e.g. info@example.com.","schema":{"type":"string"}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/contacts/email-finder":{"get":{"operationId":"contacts_email_finder","summary":"Email Finder","description":"Likely work email addresses for a person at a company, from their name and the company domain. Checks that the domain receives mail (MX records and mail provider), reads the company website for published addresses, infers the company's address pattern from them (first.last, flast, first, firstl, f.last, last, first_last ...) and returns ranked candidates with a confidence score and the evidence behind each one, including whether the exact address appears on the website. Mailboxes are never probed over SMTP, so catch-all status stays unknown.\n\nCost: 5 credit(s) per request. Failed requests are free.","tags":["contacts"],"parameters":[{"name":"first_name","in":"query","required":false,"description":"Given name, e.g. Jane.","schema":{"type":"string","default":null}},{"name":"last_name","in":"query","required":false,"description":"Family name, e.g. Doe.","schema":{"type":"string","default":null}},{"name":"full_name","in":"query","required":false,"description":"Full name instead of first_name + last_name, e.g. 'Jane Doe' or 'Doe, Jane'.","schema":{"type":"string","default":null}},{"name":"domain","in":"query","required":true,"description":"Company domain (or website URL), e.g. acme.com.","schema":{"type":"string"}},{"name":"check_website","in":"query","required":false,"description":"Read the company website (home page plus up to max_pages-1 contact/about/imprint pages) for published addresses.","schema":{"type":"boolean","default":true}},{"name":"max_pages","in":"query","required":false,"description":"Website pages to read when check_website is on.","schema":{"type":"integer","default":4}},{"name":"respect_robots","in":"query","required":false,"description":"Skip website pages disallowed by robots.txt.","schema":{"type":"boolean","default":true}},{"name":"max_candidates","in":"query","required":false,"description":"How many ranked addresses to return.","schema":{"type":"integer","default":6}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/contacts/phone":{"get":{"operationId":"contacts_phone","summary":"Phone Validator","description":"Validates and formats a phone number from any country: valid and possible flags, E.164, international and national formats, country calling code, region, line type (mobile, fixed line, toll free, VoIP and more), the original carrier, location and time zones. Computed from Google's libphonenumber data with no network calls. The carrier is the network the number range was first assigned to; ported numbers may now be on a different carrier.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["contacts"],"parameters":[{"name":"phone","in":"query","required":true,"description":"Phone number in any common format, e.g. +1 650-253-0000 or (650) 253-0000.","schema":{"type":"string"}},{"name":"country","in":"query","required":false,"description":"Default region as an ISO 3166 alpha-2 code (e.g. US, GB), used when the number has no +country prefix.","schema":{"type":"string","default":null}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/contacts/website":{"get":{"operationId":"contacts_website","summary":"Emails & Contacts from Website","description":"Crawls a business website's home page plus up to four contact, about, imprint or legal pages and returns the emails (including Cloudflare-protected and [at]-obfuscated ones, tagged role or personal and same-domain or not), phone numbers (E.164 and national format), social profiles (Facebook, Instagram, LinkedIn, X, YouTube, TikTok, Pinterest, GitHub) and schema.org organization details (name, phone, email, address, sameAs). Every email and phone lists the page URLs it was found on. Flags sites that only offer a contact form. Respects robots.txt by default.\n\nCost: 2 credit(s) per request. Failed requests are free.","tags":["contacts"],"parameters":[{"name":"url","in":"query","required":false,"description":"Website URL to crawl, e.g. https://example.com/. Give url or domain.","schema":{"type":"string","default":null}},{"name":"domain","in":"query","required":false,"description":"Domain to crawl, e.g. example.com (fetched as https://example.com/). Give url or domain.","schema":{"type":"string","default":null}},{"name":"max_pages","in":"query","required":false,"description":"Pages to fetch: the start page plus up to max_pages-1 contact, about, imprint or legal pages found on it.","schema":{"type":"integer","default":4}},{"name":"respect_robots","in":"query","required":false,"description":"Skip pages disallowed by the site's robots.txt.","schema":{"type":"boolean","default":true}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/domain/authority":{"get":{"operationId":"domain_authority","summary":"Domain Authority","description":"How authoritative a domain is on the open web, from the Common Crawl domain-level web graph (over 100 million domains and about 2 billion links between them, refreshed with each graph release): a 0-100 Gridlode Authority score and its percentile, harmonic-centrality and PageRank rank and value, the number of referring domains (domains linking to it) and of domains it links to, and the graph release used. The score is round(100 - 12.5 x log10(harmonic-centrality rank)): 100 for rank 1, 75 for rank 100, 50 for rank 10,000, 25 for rank 1,000,000. Subdomains resolve to their registrable domain. Domains that are not in the graph are free.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["domain"],"parameters":[{"name":"domain","in":"query","required":true,"description":"Domain to look up, e.g. example.com (URLs are accepted). The web graph is domain-level: subdomains are looked up as given first, then as their registrable domain.","schema":{"type":"string"}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/domain/availability":{"get":{"operationId":"domain_availability","summary":"Domain Availability","description":"Registry-level check of whether a domain is registered, via RDAP (WHOIS fallback for TLDs without RDAP). Premium or reserved names can still be unavailable at registrars.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["domain"],"parameters":[{"name":"domain","in":"query","required":true,"description":"Domain to check, e.g. gridlode.com.","schema":{"type":"string"}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/domain/backlinks":{"get":{"operationId":"domain_backlinks","summary":"Referring Domains (Backlinks)","description":"The domains that link to a domain, from the Common Crawl domain-level web graph, sorted by the referrer's authority (best first), each with its 0-100 Gridlode Authority score and harmonic-centrality rank, plus the exact total number of referring domains in the graph. Domain-level only: the graph has no page URLs or anchor text (scope \"domain\"). Lists referrers among the 20 million best-ranked domains, up to 5,000 per domain; page with limit and offset. Billed per referring domain returned (1 credit per 20); domains that are not in the graph are free.\n\nCost: 0.05 credit(s) per domain. Failed requests are free.","tags":["domain"],"parameters":[{"name":"domain","in":"query","required":true,"description":"Domain to look up, e.g. example.com (URLs are accepted). The web graph is domain-level: subdomains are looked up as given first, then as their registrable domain.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Referring domains to return, best first. Billed per domain returned (1 credit per 20).","schema":{"type":"integer","default":100}},{"name":"offset","in":"query","required":false,"description":"Skip this many referring domains (paging).","schema":{"type":"integer","default":0}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/domain/dns":{"get":{"operationId":"domain_dns","summary":"DNS Lookup","description":"DNS records (A, AAAA, MX, NS, TXT, CNAME, SOA, CAA) resolved through two independent DNS-over-HTTPS networks (Cloudflare and Google) with a consistency check between them.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["domain"],"parameters":[{"name":"domain","in":"query","required":true,"description":"Hostname to resolve, e.g. example.com or www.example.com.","schema":{"type":"string"}},{"name":"types","in":"query","required":false,"description":"Record types to resolve.","schema":{"type":"array","items":{"enum":["A","AAAA","MX","NS","TXT","CNAME","SOA","CAA"],"type":"string"}},"style":"form","explode":false},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/domain/email-security":{"get":{"operationId":"domain_email_security","summary":"Email Security Audit","description":"Checks how well a domain is protected against email spoofing: SPF (with a recursive DNS-lookup count), DMARC policy and reporting, DKIM keys at common selectors, MX provider, MTA-STS, TLS-RPT and BIMI. Returns a 0-100 score, an A-F grade and plain-English findings explaining what is good and what to fix.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["domain"],"parameters":[{"name":"domain","in":"query","required":true,"description":"Domain to audit, e.g. example.com (URLs and subdomains are reduced to the registrable domain).","schema":{"type":"string"}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/domain/ip-info":{"get":{"operationId":"domain_ip_info","summary":"IP Lookup (ASN, Network, Hosting)","description":"Who runs an IP address or a domain's servers: ASN and AS name, announced prefix, country, regional registry and allocation date (Team Cymru), the registered network name, organization, address range and abuse contact (IP RDAP from the regional registry), reverse DNS (PTR), and a hosting guess that names the provider and its type (cloud, hosting, CDN or ISP). Domains are resolved to their IPv4 and IPv6 addresses first.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["domain"],"parameters":[{"name":"query","in":"query","required":true,"description":"IPv4/IPv6 address (e.g. 1.1.1.1) or a domain (e.g. example.com); domains are resolved to their A and AAAA records.","schema":{"type":"string"}},{"name":"max_ips","in":"query","required":false,"description":"For domains: how many resolved addresses to look up (IPv4 first).","schema":{"type":"integer","default":4}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/domain/rdap":{"get":{"operationId":"domain_rdap","summary":"RDAP Lookup","description":"Structured registration data for a domain from its registry's RDAP server: registrar, creation/expiry dates, status codes, nameservers and DNSSEC. Personal registrant data is never returned.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["domain"],"parameters":[{"name":"domain","in":"query","required":true,"description":"Domain to look up, e.g. example.com. URLs and subdomains are reduced to the registrable domain.","schema":{"type":"string"}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/domain/similar-sites":{"get":{"operationId":"domain_similar_sites","summary":"Similar Sites","description":"Websites similar to a domain, found by co-citation in the Common Crawl domain-level web graph: the sites that link to the domain also tend to link to these. Up to 50 similar domains, each with a 0-1 similarity score (a cosine similarity of their sets of referring domains, so huge sites do not win on popularity alone), the number of shared referrers, its 0-100 Gridlode Authority score and rank. Ubiquitous domains (social networks, CDNs, search engines) are left out. Domains that are not in the graph, or have too few referrers to compare, are free.\n\nCost: 3 credit(s) per request. Failed requests are free.","tags":["domain"],"parameters":[{"name":"domain","in":"query","required":true,"description":"Domain to look up, e.g. example.com (URLs are accepted). The web graph is domain-level: subdomains are looked up as given first, then as their registrable domain.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Similar sites to return, most similar first.","schema":{"type":"integer","default":20}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/domain/ssl":{"get":{"operationId":"domain_ssl","summary":"SSL Certificate Check","description":"Connects to a host over TLS and reports whether its certificate is trusted, who issued it, the names it covers, when it expires (with days remaining), serial number, signature and key type, plus the TLS version and cipher the server negotiated. Invalid certificates are still decoded and the reason is explained in plain English.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["domain"],"parameters":[{"name":"domain","in":"query","required":true,"description":"Hostname to inspect, e.g. example.com or api.example.com (URLs accepted).","schema":{"type":"string"}},{"name":"port","in":"query","required":false,"description":"TLS port: 443 or 8443.","schema":{"type":"integer","default":443}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/domain/subdomains":{"get":{"operationId":"domain_subdomains","summary":"Subdomain Finder","description":"Finds a domain's subdomains from public Certificate Transparency logs (crt.sh, with Cert Spotter as a fallback), with first and last seen dates and how many certificates named each host, newest first. CT logs list every name that ever had a public TLS certificate, not the current DNS, so some results may no longer resolve.\n\nCost: 2 credit(s) per request. Failed requests are free.","tags":["domain"],"parameters":[{"name":"domain","in":"query","required":true,"description":"Registrable domain, e.g. example.com (URLs and subdomains are reduced to it).","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Maximum subdomains to return (most recently seen first).","schema":{"type":"integer","default":500}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/domain/tech":{"get":{"operationId":"domain_tech","summary":"Technology Lookup","description":"Detects the technologies a website runs on (CMS, ecommerce platform, JavaScript frameworks, analytics, advertising pixels, CDN, hosting, web server, payments, live chat, email marketing, fonts, cookie consent, A/B testing, security and more; 370+ fingerprints) from its homepage HTML, scripts, meta tags, cookies and response headers, each with a confidence level and the evidence found. Also extracts public tracking IDs (Google Analytics, Tag Manager, AdSense, Meta Pixel, Hotjar and others) that link sites run by the same owner. Respects robots.txt by default.\n\nCost: 2 credit(s) per request. Failed requests are free.","tags":["domain"],"parameters":[{"name":"domain","in":"query","required":true,"description":"Domain or URL to analyze, e.g. example.com or https://shop.example.com/page.","schema":{"type":"string"}},{"name":"respect_robots","in":"query","required":false,"description":"Refuse pages disallowed by the site's robots.txt.","schema":{"type":"boolean","default":true}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/domain/whois":{"get":{"operationId":"domain_whois","summary":"WHOIS Lookup","description":"Raw port-43 WHOIS text from the registry (and the registrar for thin registries such as .com) plus parsed registrar, dates, status and name servers. Personal emails and phone numbers are redacted by default.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["domain"],"parameters":[{"name":"domain","in":"query","required":true,"description":"Domain to look up, e.g. example.com.","schema":{"type":"string"}},{"name":"follow_referral","in":"query","required":false,"description":"Also query the registrar's WHOIS server (thin registries like .com).","schema":{"type":"boolean","default":true}},{"name":"redact_personal","in":"query","required":false,"description":"Redact personal emails and phone numbers in the raw text.","schema":{"type":"boolean","default":true}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/ecommerce/shopify-store":{"get":{"operationId":"ecommerce_shopify_store","summary":"Shopify Store Products","description":"Every public product of a Shopify store from its storefront product feed (products.json), optionally for one collection: title, handle, URL, vendor, product type, tags, price range and compare-at (sale) prices, availability, options, all variants (SKU, price, compare-at, available), images and created/updated/published dates. Also detects whether a site runs on Shopify and returns the store's name, currency, country and shipping countries. Pages through the feed politely (250 products per page, one page at a time) and respects robots.txt by default. Billed per product returned: 1 credit per 50 products.\n\nCost: 0.02 credit(s) per product. Failed requests are free.","tags":["ecommerce"],"parameters":[{"name":"domain","in":"query","required":true,"description":"Store domain or URL, e.g. www.deathwishcoffee.com or https://shop.example.com/.","schema":{"type":"string"}},{"name":"collection","in":"query","required":false,"description":"Only products in this collection: its handle (the part after /collections/ in the store URL, e.g. 'coffee') or the collection URL.","schema":{"type":"string","default":null}},{"name":"limit","in":"query","required":false,"description":"Maximum products to return (1-5000). Billed per product returned: 1 credit per 50.","schema":{"type":"integer","default":250}},{"name":"include_description","in":"query","required":false,"description":"Include each product's description as plain text.","schema":{"type":"boolean","default":false}},{"name":"respect_robots","in":"query","required":false,"description":"Stop if the store's robots.txt disallows products.json.","schema":{"type":"boolean","default":true}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/jobs/ashby":{"get":{"operationId":"jobs_ashby","summary":"Ashby Job Board","description":"Every listed job on a company's Ashby job board, read from Ashby's official public Job Posting API with compensation: title, location and secondary locations, department, team, employment type, workplace type and remote flag, structured salary range (min, max, currency, interval) when the company publishes it, published date, job and apply URLs and the full description as plain text. Same normalised job shape as the other jobs engines. One flat price per board.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["jobs"],"parameters":[{"name":"org","in":"query","required":true,"description":"Ashby organisation name: the part after jobs.ashbyhq.com/ in the company's job-board URL, e.g. 'linear'. A full board URL also works.","schema":{"type":"string"}},{"name":"keyword","in":"query","required":false,"description":"Only return jobs whose title contains this text (case-insensitive), e.g. 'engineer'.","schema":{"type":"string","default":null}},{"name":"location","in":"query","required":false,"description":"Only return jobs whose location contains this text (case-insensitive), e.g. 'London' or 'Remote'.","schema":{"type":"string","default":null}},{"name":"department","in":"query","required":false,"description":"Only return jobs whose department or team contains this text (case-insensitive), e.g. 'Sales'.","schema":{"type":"string","default":null}},{"name":"remote_only","in":"query","required":false,"description":"Only return remote jobs.","schema":{"type":"boolean","default":false}},{"name":"include_description","in":"query","required":false,"description":"Include each job's full description as plain text. Turn off for a much smaller response.","schema":{"type":"boolean","default":true}},{"name":"limit","in":"query","required":false,"description":"Maximum number of jobs to return (1-5000). The price is the same: 1 credit per request.","schema":{"type":"integer","default":1000}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/jobs/company-site":{"get":{"operationId":"jobs_company_site","summary":"Company Careers Page Jobs","description":"Give a company domain or careers-page URL and get its open jobs. Detects the applicant-tracking system behind the careers page (Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee or Personio links and embeds) and reads that system's official public job feed; otherwise returns schema.org JobPosting data published on the page. Same normalised job shape as the other jobs engines (title, location, remote, department, employment type, salary, posted date, URL, description, ats), plus how the board was detected. Checks at most four company pages and respects robots.txt by default.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["jobs"],"parameters":[{"name":"url","in":"query","required":false,"description":"Careers page URL, e.g. https://example.com/careers. A job-board URL such as https://jobs.lever.co/acme also works. Give url or domain.","schema":{"type":"string","default":null}},{"name":"domain","in":"query","required":false,"description":"Company domain, e.g. example.com. The home page is checked first, then its careers or jobs links. Give url or domain.","schema":{"type":"string","default":null}},{"name":"keyword","in":"query","required":false,"description":"Only return jobs whose title contains this text (case-insensitive), e.g. 'engineer'.","schema":{"type":"string","default":null}},{"name":"location","in":"query","required":false,"description":"Only return jobs whose location contains this text (case-insensitive), e.g. 'London' or 'Remote'.","schema":{"type":"string","default":null}},{"name":"department","in":"query","required":false,"description":"Only return jobs whose department or team contains this text (case-insensitive), e.g. 'Sales'.","schema":{"type":"string","default":null}},{"name":"remote_only","in":"query","required":false,"description":"Only return remote jobs.","schema":{"type":"boolean","default":false}},{"name":"include_description","in":"query","required":false,"description":"Include each job's full description as plain text. Turn off for a much smaller response.","schema":{"type":"boolean","default":true}},{"name":"limit","in":"query","required":false,"description":"Maximum number of jobs to return (1-5000). The price is the same: 1 credit per request.","schema":{"type":"integer","default":1000}},{"name":"respect_robots","in":"query","required":false,"description":"Skip company pages disallowed by the site's robots.txt (job-board APIs are always allowed).","schema":{"type":"boolean","default":true}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/jobs/greenhouse":{"get":{"operationId":"jobs_greenhouse","summary":"Greenhouse Job Board","description":"Every open job on a company's Greenhouse job board, read from Greenhouse's official public Job Board API: title, location, department, office, employment type, remote flag, pay range (when the posting states one), first-published and updated dates, job URL and the full description as plain text. Same normalised job shape as the other jobs engines. Filter by keyword, location, department or remote. One flat price per board, however many jobs it has.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["jobs"],"parameters":[{"name":"board","in":"query","required":true,"description":"Greenhouse board name: the part after boards.greenhouse.io/ or job-boards.greenhouse.io/ in the company's job-board URL, e.g. 'duolingo'. A full board URL also works.","schema":{"type":"string"}},{"name":"keyword","in":"query","required":false,"description":"Only return jobs whose title contains this text (case-insensitive), e.g. 'engineer'.","schema":{"type":"string","default":null}},{"name":"location","in":"query","required":false,"description":"Only return jobs whose location contains this text (case-insensitive), e.g. 'London' or 'Remote'.","schema":{"type":"string","default":null}},{"name":"department","in":"query","required":false,"description":"Only return jobs whose department or team contains this text (case-insensitive), e.g. 'Sales'.","schema":{"type":"string","default":null}},{"name":"remote_only","in":"query","required":false,"description":"Only return remote jobs.","schema":{"type":"boolean","default":false}},{"name":"include_description","in":"query","required":false,"description":"Include each job's full description as plain text. Turn off for a much smaller response.","schema":{"type":"boolean","default":true}},{"name":"limit","in":"query","required":false,"description":"Maximum number of jobs to return (1-5000). The price is the same: 1 credit per request.","schema":{"type":"integer","default":1000}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/jobs/lever":{"get":{"operationId":"jobs_lever","summary":"Lever Job Board","description":"Every open job on a company's Lever job board, read from Lever's official public Postings API (US and EU-hosted boards): title, location and all locations, department, team, commitment (employment type), workplace type and remote flag, salary range when published, posted date, job and apply URLs, and the full description (intro, lists and closing) as plain text. Same normalised job shape as the other jobs engines. One flat price per board.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["jobs"],"parameters":[{"name":"company","in":"query","required":true,"description":"Lever company name: the part after jobs.lever.co/ in the company's job-board URL, e.g. 'spotify'. A full board URL also works. EU-hosted boards are found automatically.","schema":{"type":"string"}},{"name":"keyword","in":"query","required":false,"description":"Only return jobs whose title contains this text (case-insensitive), e.g. 'engineer'.","schema":{"type":"string","default":null}},{"name":"location","in":"query","required":false,"description":"Only return jobs whose location contains this text (case-insensitive), e.g. 'London' or 'Remote'.","schema":{"type":"string","default":null}},{"name":"department","in":"query","required":false,"description":"Only return jobs whose department or team contains this text (case-insensitive), e.g. 'Sales'.","schema":{"type":"string","default":null}},{"name":"remote_only","in":"query","required":false,"description":"Only return remote jobs.","schema":{"type":"boolean","default":false}},{"name":"include_description","in":"query","required":false,"description":"Include each job's full description as plain text. Turn off for a much smaller response.","schema":{"type":"boolean","default":true}},{"name":"limit","in":"query","required":false,"description":"Maximum number of jobs to return (1-5000). The price is the same: 1 credit per request.","schema":{"type":"integer","default":1000}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/places/bbb":{"get":{"operationId":"places_bbb","summary":"BBB Business Search & Profiles","description":"Better Business Bureau (bbb.org) businesses in the US and Canada, searched by name or category plus city or ZIP, or one business profile by its BBB URL: name, BBB accreditation, letter rating (A+ to F), address, coordinates, phone, website, categories, years in business, complaint counts (total, closed in the last 12 months and 3 years), customer review count and star average, licences, payment methods, service areas and the profile URL. Search results come 15 per BBB page; set details=true to open every business's profile for the full field set (billed as two businesses each). Collected exactly as a signed-out visitor sees bbb.org; names of business principals are withheld unless you ask for them, and e-mail addresses are never collected. Billed per business returned; blocked or failed requests are free. Note: BBB currently puts its profile pages behind a bot check for automated visitors, so profile_url lookups and details=true usually come back blocked (free); search results are unaffected.\n\nCost: 2 credit(s) per business. Failed requests are free.","tags":["places"],"parameters":[{"name":"q","in":"query","required":false,"description":"Business name or category to search for, e.g. 'plumbers' or 'Crow's Plumbing'.","schema":{"type":"string","default":null}},{"name":"location","in":"query","required":false,"description":"City and state/province or ZIP/postal code, e.g. 'Austin, TX' or '78701'.","schema":{"type":"string","default":null}},{"name":"country","in":"query","required":false,"description":"Search the US (us) or Canadian (ca) BBB directory.","schema":{"type":"string","default":"us"}},{"name":"profile_url","in":"query","required":false,"description":"A bbb.org business profile URL. Returns that one business instead of searching.","schema":{"type":"string","default":null}},{"name":"sort","in":"query","required":false,"description":"Result order.","schema":{"type":"string","default":"relevance"}},{"name":"page","in":"query","required":false,"description":"BBB results page to start from (15 businesses per page).","schema":{"type":"integer","default":1}},{"name":"limit","in":"query","required":false,"description":"Maximum businesses to return (1-150).","schema":{"type":"integer","default":15}},{"name":"accredited_only","in":"query","required":false,"description":"Keep only BBB-accredited businesses.","schema":{"type":"boolean","default":false}},{"name":"details","in":"query","required":false,"description":"Open each business's profile for website, years in business, complaints and more. Each business is then billed twice.","schema":{"type":"boolean","default":false}},{"name":"include_contact_names","in":"query","required":false,"description":"Return the names of business principals listed on profiles. Off by default: only their titles.","schema":{"type":"boolean","default":false}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/places/bing-maps":{"get":{"operationId":"places_bing_maps","summary":"Bing Maps Places Search","description":"Local businesses from a Bing Maps search, by keyword plus city, ZIP or address (\"plumbers\", \"Austin, TX\") or around exact coordinates: name, Bing listing ID and URL, category, full address (street, city, state and ZIP for US addresses), phone, website, star rating with its review count and source (Bing shows Yelp, TripAdvisor or its own ratings), open-now status and hours text, latitude, longitude and photo, about 18 businesses per Bing page and up to 100 per call, in any Bing market (en-US, en-GB, de-DE...). Read from the list the signed-out Bing Maps page loads; verification pages are detected, never bypassed, and never charged. Billed per business returned; blocked or failed requests are free.\n\nCost: 1 credit(s) per business. Failed requests are free.","tags":["places"],"parameters":[{"name":"q","in":"query","required":true,"description":"What to look for, e.g. 'plumbers', 'coffee' or a business name.","schema":{"type":"string"}},{"name":"location","in":"query","required":false,"description":"Where to look: city and state, ZIP or address, e.g. 'Austin, TX'. Leave empty when q already names the place or when ll is set.","schema":{"type":"string","default":null}},{"name":"ll","in":"query","required":false,"description":"Search around these coordinates instead of a place name: 'latitude,longitude', e.g. '30.2672,-97.7431'.","schema":{"type":"string","default":null}},{"name":"zoom","in":"query","required":false,"description":"Map zoom used with ll (3 = continent, 12 = city, 16 = streets).","schema":{"type":"integer","default":12}},{"name":"market","in":"query","required":false,"description":"Bing market (language-COUNTRY), e.g. en-US, en-GB, de-DE, fr-FR.","schema":{"type":"string","default":"en-US"}},{"name":"limit","in":"query","required":false,"description":"Maximum businesses to return (1-100).","schema":{"type":"integer","default":20}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/places/google-maps":{"get":{"operationId":"places_google_maps","summary":"Google Maps Places Search","description":"Businesses and places from a Google Maps search, by query plus city (\"dentists\", \"Austin, TX\") or by exact coordinates and zoom: name, place ID, CID, categories, rating, review count, phone, website, full address with components, coordinates, opening hours, business status, attributes and thumbnail, up to 120 places per query. Collected exactly as a signed-out visitor sees Google Maps: we never log in or use accounts. Google's signed-out \"limited view\" hides some fields (price level, popular times, menus); those come back as null, never estimated, and every response includes a coverage report. Billed per place returned; blocked or failed requests are free.\n\nCost: 2 credit(s) per place. Failed requests are free.","tags":["places"],"parameters":[{"name":"q","in":"query","required":true,"description":"What to search for, e.g. 'dentists' or 'coffee'.","schema":{"type":"string"}},{"name":"location","in":"query","required":false,"description":"Free-text place to search in, e.g. 'Austin, TX'. Appended to the query.","schema":{"type":"string","default":null}},{"name":"ll","in":"query","required":false,"description":"Exact map viewport as '@lat,lng,zoomz', e.g. '@30.2672,-97.7431,13z'.","schema":{"type":"string","default":null}},{"name":"hl","in":"query","required":false,"description":"Interface language, e.g. en, de, es.","schema":{"type":"string","default":"en"}},{"name":"gl","in":"query","required":false,"description":"Two-letter country code to search from.","schema":{"type":"string","default":"us"}},{"name":"limit","in":"query","required":false,"description":"Maximum places to return (1-120).","schema":{"type":"integer","default":20}},{"name":"skip_closed","in":"query","required":false,"description":"Leave out temporarily and permanently closed places.","schema":{"type":"boolean","default":false}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/places/google-maps/photos":{"get":{"operationId":"places_google_maps_photos","summary":"Google Maps Place Photos","description":"The photos and videos of one Google Maps place, by place ID or by name and city, that a signed-out visitor can see: full-size and thumbnail image URLs, original width and height, video URL, upload date, coordinates, whether the owner or a visitor uploaded it, and Google's categories where the data says so (\"By owner\", \"Street View & 360°\", \"Videos\", owner updates, photos from reviews). Honest limit: Google's signed-out \"limited view\" hides the photo gallery and its tabs (Latest, Menu, Food & drink, Vibe), so we return the photos on the place page itself, usually 10-40, with a coverage figure such as \"18 of 2,711 photos visible\". We never log in or use accounts. One credit per call; not-found places, places with no visible photos, blocks and failures are free.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["places"],"parameters":[{"name":"place_id","in":"query","required":false,"description":"Google place ID (ChIJ...) or Google feature id (0x...:0x...).","schema":{"type":"string","default":null}},{"name":"q","in":"query","required":false,"description":"Business name and city, e.g. 'Iron Cactus Austin, TX'. Used when place_id is not given.","schema":{"type":"string","default":null}},{"name":"limit","in":"query","required":false,"description":"Maximum photos to return. Google shows signed-out visitors about 10-40 per place.","schema":{"type":"integer","default":50}},{"name":"hl","in":"query","required":false,"description":"Interface language, e.g. en, de, es.","schema":{"type":"string","default":"en"}},{"name":"gl","in":"query","required":false,"description":"Two-letter country code to search from.","schema":{"type":"string","default":"us"}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/places/google-maps/place":{"get":{"operationId":"places_google_maps_place","summary":"Google Maps Place Details","description":"One Google Maps place by place ID or by name and city: everything the search endpoint returns plus plus code, owner description, rating distribution, review highlights and the handful of reviews Google shows signed-out visitors, with an explicit coverage figure such as \"5 of 4,082 reviews visible\". Collected exactly as a signed-out visitor sees Google Maps: we never log in or use accounts, so fields hidden by Google's \"limited view\" (price level, popular times, menus, the full review history) come back as null, never estimated. Reviewer names are pseudonymized unless you ask for them. Not-found places, blocks and failures are free.\n\nCost: 2 credit(s) per request. Failed requests are free.","tags":["places"],"parameters":[{"name":"place_id","in":"query","required":false,"description":"Google place ID (ChIJ...) or Google feature id (0x...:0x...).","schema":{"type":"string","default":null}},{"name":"q","in":"query","required":false,"description":"Business name and city, e.g. 'Iron Cactus Austin, TX'. Used when place_id is not given.","schema":{"type":"string","default":null}},{"name":"hl","in":"query","required":false,"description":"Interface language, e.g. en, de, es.","schema":{"type":"string","default":"en"}},{"name":"gl","in":"query","required":false,"description":"Two-letter country code to search from.","schema":{"type":"string","default":"us"}},{"name":"include_reviewer_names","in":"query","required":false,"description":"Return reviewer display names. Off by default: authors are 'Reviewer 1', 'Reviewer 2', ...","schema":{"type":"boolean","default":false}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/places/google-maps/rank-grid":{"get":{"operationId":"places_google_maps_rank","summary":"Google Maps Rank Grid","description":"A geo-grid local rank tracker: give a keyword, your business (place ID or name) and a centre point, and we run the keyword as a Google Maps search centred on every point of a 3x3, 5x5 or 7x7 grid (default 1 km apart) and report where your business ranks among the first 20 results at each point, with the top 3 competitors (name, place ID, rating, review count) per point and a summary: average rank where found, share of points in the top 3, found count, best and worst rank. Collected exactly as a signed-out visitor sees Google Maps; we never log in. Billed per grid point that returned a result page; blocked or timed-out points come back with rank null and are free.\n\nCost: 2 credit(s) per point. Failed requests are free.","tags":["places"],"parameters":[{"name":"keyword","in":"query","required":true,"description":"What customers search for, e.g. 'dentist' or 'mexican restaurant'.","schema":{"type":"string"}},{"name":"place_id","in":"query","required":false,"description":"The business to track: Google place ID (ChIJ...) or feature id (0x...:0x...). Most precise.","schema":{"type":"string","default":null}},{"name":"name","in":"query","required":false,"description":"The business to track by name, used when place_id is not given. Matches any result whose name contains it (case and accents ignored); use place_id for chains.","schema":{"type":"string","default":null}},{"name":"lat","in":"query","required":true,"description":"Latitude of the grid centre, e.g. 30.2672.","schema":{"type":"number"}},{"name":"lng","in":"query","required":true,"description":"Longitude of the grid centre, e.g. -97.7431.","schema":{"type":"number"}},{"name":"grid_size","in":"query","required":false,"description":"Points per side: 3 (9 points), 5 (25) or 7 (49). Billed per grid point.","schema":{"type":"integer","default":5}},{"name":"spacing_km","in":"query","required":false,"description":"Distance between neighbouring points in km.","schema":{"type":"number","default":1}},{"name":"zoom","in":"query","required":false,"description":"Map zoom used for each search (13 is about a neighbourhood-wide view).","schema":{"type":"integer","default":13}},{"name":"hl","in":"query","required":false,"description":"Interface language, e.g. en, de, es.","schema":{"type":"string","default":"en"}},{"name":"gl","in":"query","required":false,"description":"Two-letter country code to search from.","schema":{"type":"string","default":"us"}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/places/yellowpages":{"get":{"operationId":"places_yellowpages","summary":"Yellow Pages Business Search","description":"Businesses from a yellowpages.com search by category or keyword plus city, state or ZIP (\"plumbers\", \"Austin, TX\"): business name, categories, phone, street address, city, state and ZIP, website, star rating and review count, the TripAdvisor rating YP shows, years in business, thumbnail and the YP listing URL, 30 businesses per YP page and up to 300 per call. Sponsored listings are left out unless you ask for them. Collected as a signed-out visitor; bot-check pages are detected, never bypassed, and never charged. Billed per business returned; blocked or failed requests are free.\n\nCost: 2 credit(s) per business. Failed requests are free.","tags":["places"],"parameters":[{"name":"q","in":"query","required":true,"description":"Category or keyword to search for, e.g. 'plumbers' or 'pizza'.","schema":{"type":"string"}},{"name":"location","in":"query","required":true,"description":"City and state or ZIP code, e.g. 'Austin, TX' or '78701'.","schema":{"type":"string"}},{"name":"page","in":"query","required":false,"description":"Yellow Pages results page to start from (30 per page).","schema":{"type":"integer","default":1}},{"name":"limit","in":"query","required":false,"description":"Maximum businesses to return (1-300).","schema":{"type":"integer","default":30}},{"name":"include_sponsored","in":"query","required":false,"description":"Also return sponsored (ad) listings, flagged as such.","schema":{"type":"boolean","default":false}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/reviews/app-store":{"get":{"operationId":"reviews_app_store","summary":"App Store Reviews","description":"Written customer reviews of an Apple App Store app in any country storefront, most recent or most helpful first: rating, title, text, app version reviewed, date and helpful-vote counts, up to the 500 reviews (10 pages of 50) Apple's public review feed exposes per storefront. Reviewer names are pseudonymized unless you ask for them. Billed per review returned; apps without reviews, unknown apps and failed requests are free.\n\nCost: 1 credit(s) per review. Failed requests are free.","tags":["reviews"],"parameters":[{"name":"app_id","in":"query","required":true,"description":"Numeric App Store id (570060128), 'id570060128' or an apps.apple.com app URL.","schema":{"type":"string"}},{"name":"country","in":"query","required":false,"description":"Two-letter App Store country (storefront) whose reviews to read, e.g. us, gb, de. Each storefront has its own reviews.","schema":{"type":"string","default":"us"}},{"name":"sort","in":"query","required":false,"description":"Review order.","schema":{"type":"string","default":"most_recent"}},{"name":"limit","in":"query","required":false,"description":"Maximum reviews to return (1-500). Billed per review returned. Use a multiple of 50 to page through without gaps.","schema":{"type":"integer","default":50}},{"name":"page","in":"query","required":false,"description":"Feed page to start from (1-10, 50 reviews per page). Use pagination.next_page from a previous response to continue.","schema":{"type":"integer","default":1}},{"name":"include_reviewer_names","in":"query","required":false,"description":"Return reviewer display names (and profile links where the store shows them). Off by default: authors are 'Reviewer 1', 'Reviewer 2', ... in the order returned.","schema":{"type":"boolean","default":false}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/reviews/google-maps":{"get":{"operationId":"reviews_google_maps","summary":"Google Maps Reviews","description":"The reviews of one Google Maps place by place ID or by name and city that a signed-out visitor can see: rating, text, language, publish and edit dates, photo count, Google's guided answers (meal type, price per person, food, service and atmosphere scores) and the owner's reply, plus the place's rating, review count and 1-5 star distribution. Honest limit: Google's signed-out \"limited view\" shows only 5 reviews per sort order (newest, most relevant, highest, lowest) and refuses to page further, so one call returns at most about 20 reviews, with a coverage figure such as \"20 of 4,082 reviews visible\". We never log in or use accounts. Reviewer names are pseudonymized unless you ask for them. Billed per review returned; not-found places, places with no visible reviews, blocks and failures are free.\n\nCost: 0.5 credit(s) per review. Failed requests are free.","tags":["reviews"],"parameters":[{"name":"place_id","in":"query","required":false,"description":"Google place ID (ChIJ...) or Google feature id (0x...:0x...).","schema":{"type":"string","default":null}},{"name":"q","in":"query","required":false,"description":"Business name and city, e.g. 'Iron Cactus Austin, TX'. Used when place_id is not given.","schema":{"type":"string","default":null}},{"name":"sort","in":"query","required":false,"description":"Review order: newest, most_relevant, highest or lowest rating first.","schema":{"type":"string","default":"newest"}},{"name":"limit","in":"query","required":false,"description":"Maximum reviews to return. Google shows signed-out visitors 5 reviews per sort order; above 5, the reviews visible under the other three orders are added (about 20 at most). Billed per review returned.","schema":{"type":"integer","default":20}},{"name":"hl","in":"query","required":false,"description":"Interface language, e.g. en, de, es.","schema":{"type":"string","default":"en"}},{"name":"gl","in":"query","required":false,"description":"Two-letter country code to search from.","schema":{"type":"string","default":"us"}},{"name":"include_reviewer_names","in":"query","required":false,"description":"Return reviewer display names. Off by default: authors are 'Reviewer 1', 'Reviewer 2', ...","schema":{"type":"boolean","default":false}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/reviews/google-play":{"get":{"operationId":"reviews_google_play","summary":"Google Play Reviews","description":"Google Play user reviews of any app, newest, most relevant or by rating, with an optional 1-5 star filter, in any language and country: rating, text, date, thumbs-up count, app version reviewed and the developer's reply with its date. Up to 1,000 reviews per call, with a continuation token to keep paging. Collected as a signed-out visitor; reviewer names are pseudonymized unless you ask for them. Billed per review returned; blocked or failed requests are free.\n\nCost: 1 credit(s) per review. Failed requests are free.","tags":["reviews"],"parameters":[{"name":"app_id","in":"query","required":true,"description":"Google Play package name, e.g. com.duolingo, or a play.google.com app URL.","schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"description":"Review order: newest first, Google's 'most relevant', or by rating.","schema":{"type":"string","default":"newest"}},{"name":"stars","in":"query","required":false,"description":"Only reviews with this star rating (1-5).","schema":{"type":"string","default":null}},{"name":"limit","in":"query","required":false,"description":"Maximum reviews to return (1-1000). Billed per review returned.","schema":{"type":"integer","default":100}},{"name":"continuation_token","in":"query","required":false,"description":"pagination.next_token from a previous response, to continue where it stopped. Use the same app_id, sort, stars, hl and gl.","schema":{"type":"string","default":null}},{"name":"hl","in":"query","required":false,"description":"Language of the reviews to read, e.g. en, de, pt-BR. Google Play shows reviews written in (or translated to) this language.","schema":{"type":"string","default":"en"}},{"name":"gl","in":"query","required":false,"description":"Two-letter country whose Play Store to read, e.g. us, gb, in.","schema":{"type":"string","default":"us"}},{"name":"include_reviewer_names","in":"query","required":false,"description":"Return reviewer display names (and profile links where the store shows them). Off by default: authors are 'Reviewer 1', 'Reviewer 2', ... in the order returned.","schema":{"type":"boolean","default":false}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/reviews/trustpilot":{"get":{"operationId":"reviews_trustpilot","summary":"Trustpilot Reviews","description":"A company's Trustpilot profile and reviews by website domain: name, TrustScore, stars, review count and 1-5 star distribution, categories, claimed and verification status, reply rate, listed contact details and Trustpilot's AI summary, plus reviews with rating, title, text, language, dates, verified flag, likes and the company's reply. Filter by stars and language, sort by recency or relevance, and page through 20 reviews at a time (up to 200 per call). Reviewer names are pseudonymized unless you ask for them. Billed per review returned (minimum 1 credit for a company found); unknown companies, verification pages and failed requests are free.\n\nCost: 1 credit(s) per review. Failed requests are free.","tags":["reviews"],"parameters":[{"name":"domain","in":"query","required":true,"description":"The company's website domain as listed on Trustpilot, e.g. amazon.com or www.amazon.com, or its trustpilot.com/review/... URL.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Maximum reviews to return (0-200; 20 per Trustpilot page). 0 returns only the company profile. Billed per review returned, minimum 1 credit for a company found.","schema":{"type":"integer","default":20}},{"name":"page","in":"query","required":false,"description":"Trustpilot review page to start from (20 reviews per page). Use pagination.next_page from a previous response to continue.","schema":{"type":"integer","default":1}},{"name":"stars","in":"query","required":false,"description":"Only reviews with these star ratings, e.g. [1, 2]. Default: all ratings.","schema":{"type":"string","default":null}},{"name":"language","in":"query","required":false,"description":"Review language: 'all' or a two-letter code such as en, de, fr.","schema":{"type":"string","default":"all"}},{"name":"sort","in":"query","required":false,"description":"Review order: most recent first, or Trustpilot's 'most relevant'.","schema":{"type":"string","default":"recency"}},{"name":"include_reviewer_names","in":"query","required":false,"description":"Return reviewer display names (and profile links where the store shows them). Off by default: authors are 'Reviewer 1', 'Reviewer 2', ... in the order returned.","schema":{"type":"boolean","default":false}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/search/baidu":{"get":{"operationId":"serp_baidu","summary":"Baidu Search","description":"Live Baidu web results for any query: organic results with title, the real destination link (taken from Baidu's result metadata, with Baidu's redirect link alongside), displayed URL, snippet and date, plus related searches. 10 to 50 results per page. Ads and Baidu's security verification pages are detected; verification pages are never charged. Baidu often challenges proxy traffic: each request is retried on fresh Chinese and then international IPs, and a request that still fails is free, so retry it later.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["serp"],"parameters":[{"name":"q","in":"query","required":true,"description":"Search query (Chinese or any language).","schema":{"type":"string"}},{"name":"num","in":"query","required":false,"description":"Results per page (10, 20 or 50; Baidu rounds others).","schema":{"type":"integer","default":10}},{"name":"page","in":"query","required":false,"description":"Results page (1-10).","schema":{"type":"integer","default":1}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/search/bing":{"get":{"operationId":"serp_bing","summary":"Bing Search","description":"Live Bing web results for any query and market: organic results with title, link, displayed URL, snippet and date, plus related searches, \"People also ask\" questions, the result-count estimate and the next page. Set num (up to 100) for deep results: successive pages are fetched, de-duplicated and numbered 1-100 for rank tracking, billed 1 credit per page fetched. Verification pages are detected and never charged.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["serp"],"parameters":[{"name":"q","in":"query","required":true,"description":"Search query.","schema":{"type":"string"}},{"name":"cc","in":"query","required":false,"description":"Country code of the market to search, e.g. us, gb, de.","schema":{"type":"string","default":"us"}},{"name":"setlang","in":"query","required":false,"description":"Interface language, e.g. en, de, pt-BR.","schema":{"type":"string","default":"en"}},{"name":"count","in":"query","required":false,"description":"Results per page (10-50).","schema":{"type":"integer","default":10}},{"name":"first","in":"query","required":false,"description":"1-based offset of the first result (1, 11, 21, ...).","schema":{"type":"integer","default":1}},{"name":"safe","in":"query","required":false,"description":"SafeSearch level.","schema":{"type":"string","default":"moderate"}},{"name":"num","in":"query","required":false,"description":"Deep results for rank tracking: collect up to this many organic results (1-100) by fetching successive pages from 'first' onwards, with duplicates removed and continuous positions. Billed per page fetched (1 credit per page; Bing serves about 10 results per page, so num=100 costs up to 10 credits). Leave empty for a single page.","schema":{"type":"string","default":null}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/search/bing/images":{"get":{"operationId":"serp_bing_images","summary":"Bing Images Search","description":"Live Bing Images results for any query and market: full-size image URL, thumbnail, title, the page the image appears on, its domain and the image's width and height, with Bing's size, color, type, layout, license and date filters and SafeSearch. 35 images per page. Verification pages are detected and never charged.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["serp"],"parameters":[{"name":"q","in":"query","required":true,"description":"Search query.","schema":{"type":"string"}},{"name":"cc","in":"query","required":false,"description":"Market (country) to search, e.g. us, gb, de, in.","schema":{"type":"string","default":"us"}},{"name":"setlang","in":"query","required":false,"description":"Interface language, e.g. en, de, pt-BR.","schema":{"type":"string","default":"en"}},{"name":"size","in":"query","required":false,"description":"Image size: small, medium, large or wallpaper (extra large).","schema":{"type":"string","default":"any"}},{"name":"color","in":"query","required":false,"description":"Color only, black & white (bw), or a dominant color.","schema":{"type":"string","default":"any"}},{"name":"type","in":"query","required":false,"description":"Image type: photo, clipart, line drawing, animated GIF or transparent.","schema":{"type":"string","default":"any"}},{"name":"layout","in":"query","required":false,"description":"Aspect ratio.","schema":{"type":"string","default":"any"}},{"name":"license","in":"query","required":false,"description":"Usage rights as Bing labels them (always check the source page's license).","schema":{"type":"string","default":"any"}},{"name":"freshness","in":"query","required":false,"description":"Only images Bing found in the past day, week, month or year.","schema":{"type":"string","default":"any"}},{"name":"safe","in":"query","required":false,"description":"SafeSearch level.","schema":{"type":"string","default":"moderate"}},{"name":"page","in":"query","required":false,"description":"Results page (1-20), 35 images per page.","schema":{"type":"integer","default":1}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/search/bing/news":{"get":{"operationId":"serp_bing_news","summary":"Bing News Search","description":"Live Bing News articles for any query and market: headline, article link, publisher, how long ago it was published, snippet and thumbnail, with freshness filters (past hour, day, week, month), newest-first sorting and pages of about 10 articles. Verification pages are detected and never charged.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["serp"],"parameters":[{"name":"q","in":"query","required":true,"description":"Search query.","schema":{"type":"string"}},{"name":"cc","in":"query","required":false,"description":"Market (country) to search, e.g. us, gb, de, in.","schema":{"type":"string","default":"us"}},{"name":"setlang","in":"query","required":false,"description":"Interface language, e.g. en, de, pt-BR.","schema":{"type":"string","default":"en"}},{"name":"freshness","in":"query","required":false,"description":"Only articles from the past hour, day, week or month.","schema":{"type":"string","default":"any"}},{"name":"sort","in":"query","required":false,"description":"Best match or most recent first.","schema":{"type":"string","default":"relevance"}},{"name":"page","in":"query","required":false,"description":"Results page (1-10), about 10 articles per page.","schema":{"type":"integer","default":1}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/search/bing/videos":{"get":{"operationId":"serp_bing_videos","summary":"Bing Videos Search","description":"Live Bing Videos results for any query and market: title, video link, platform (YouTube, Vimeo, ...), channel or creator, duration, view count, upload date and thumbnail, plus the Shorts row when Bing shows one. Filter by length, upload date and resolution; 35 videos per page. Verification pages are detected and never charged.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["serp"],"parameters":[{"name":"q","in":"query","required":true,"description":"Search query.","schema":{"type":"string"}},{"name":"cc","in":"query","required":false,"description":"Market (country) to search, e.g. us, gb, de, in.","schema":{"type":"string","default":"us"}},{"name":"setlang","in":"query","required":false,"description":"Interface language, e.g. en, de, pt-BR.","schema":{"type":"string","default":"en"}},{"name":"duration","in":"query","required":false,"description":"Length: short (under 5 min), medium (5-20 min) or long (over 20 min).","schema":{"type":"string","default":"any"}},{"name":"freshness","in":"query","required":false,"description":"Only videos from the past day, week, month or year.","schema":{"type":"string","default":"any"}},{"name":"resolution","in":"query","required":false,"description":"Minimum resolution.","schema":{"type":"string","default":"any"}},{"name":"safe","in":"query","required":false,"description":"SafeSearch level.","schema":{"type":"string","default":"moderate"}},{"name":"page","in":"query","required":false,"description":"Results page (1-10), 35 videos per page.","schema":{"type":"integer","default":1}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/search/brave":{"get":{"operationId":"serp_brave","summary":"Brave Search","description":"Live results from Brave Search's independent web index for any query: organic results with title, link, displayed URL, site name, snippet and date, with country, language, SafeSearch and freshness settings. Brave's verification pages are detected and never charged.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["serp"],"parameters":[{"name":"q","in":"query","required":true,"description":"Search query.","schema":{"type":"string"}},{"name":"country","in":"query","required":false,"description":"Country to search from, e.g. us, gb, de, or 'all' for no region.","schema":{"type":"string","default":"us"}},{"name":"language","in":"query","required":false,"description":"Preferred result language, e.g. en, de, fr.","schema":{"type":"string","default":"en"}},{"name":"safe","in":"query","required":false,"description":"SafeSearch level.","schema":{"type":"string","default":"moderate"}},{"name":"freshness","in":"query","required":false,"description":"Only pages from the past day, week, month or year.","schema":{"type":"string","default":"any"}},{"name":"page","in":"query","required":false,"description":"Results page (1-10), about 20 results per page.","schema":{"type":"integer","default":1}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/search/cse":{"get":{"operationId":"serp_cse","summary":"Custom Search API Replacement","description":"A drop-in replacement for Google's Custom Search JSON API, which shuts down on 1 January 2027. Send the same parameters (q, num, start, gl, hl, lr, safe, siteSearch, siteSearchFilter; cx and key are accepted and ignored) and get the same response shape with items[]. Answers come from Google through a licensed results feed, or from Bing when that feed is not available; the gridlode.source field says which.\n\nCost: 2 credit(s) per request. Failed requests are free.","tags":["serp"],"parameters":[{"name":"q","in":"query","required":true,"description":"Search query (searchTerms).","schema":{"type":"string"}},{"name":"num","in":"query","required":false,"description":"Number of results to return (1-10).","schema":{"type":"integer","default":10}},{"name":"start","in":"query","required":false,"description":"Index of the first result (1-91).","schema":{"type":"integer","default":1}},{"name":"gl","in":"query","required":false,"description":"Country to search from, e.g. us.","schema":{"type":"string","default":null}},{"name":"hl","in":"query","required":false,"description":"Interface language, e.g. en.","schema":{"type":"string","default":null}},{"name":"lr","in":"query","required":false,"description":"Restrict to documents in a language, e.g. lang_en.","schema":{"type":"string","default":null}},{"name":"safe","in":"query","required":false,"description":"SafeSearch: active or off.","schema":{"type":"string","default":"off"}},{"name":"siteSearch","in":"query","required":false,"description":"Site to include or exclude.","schema":{"type":"string","default":null}},{"name":"siteSearchFilter","in":"query","required":false,"description":"i = only results from siteSearch (default), e = exclude them.","schema":{"type":"string","default":null}},{"name":"cx","in":"query","required":false,"description":"Accepted for compatibility and ignored.","schema":{"type":"string","default":null}},{"name":"key","in":"query","required":false,"description":"Accepted for compatibility and ignored (never stored or echoed). Authenticate with your Gridlode key.","schema":{"type":"string","default":null}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/search/duckduckgo":{"get":{"operationId":"serp_duckduckgo","summary":"DuckDuckGo Search","description":"Live DuckDuckGo web results for any query and region: organic results with title, real destination link, displayed URL and snippet, plus the instant answer box when DuckDuckGo shows one. Set page (1-10) for deeper results: positions continue across pages (page 2 starts at 11) and every page is billed as one request. Bot-check pages are detected and never charged.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["serp"],"parameters":[{"name":"q","in":"query","required":true,"description":"Search query.","schema":{"type":"string"}},{"name":"kl","in":"query","required":false,"description":"Region, e.g. us-en, uk-en, de-de, or wt-wt for no region.","schema":{"type":"string","default":"us-en"}},{"name":"safe","in":"query","required":false,"description":"SafeSearch level.","schema":{"type":"string","default":"moderate"}},{"name":"page","in":"query","required":false,"description":"Results page, 1-10. Page 1 holds about 10 results and later pages about 15; positions continue across pages (page 2 starts at 11). Billed as one request whatever the page.","schema":{"type":"integer","default":1}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/search/google":{"get":{"operationId":"serp_google","summary":"Google Search","description":"One Google results page for any query, country, language, city-level location and device: organic results with sitelinks, dates and snippets, plus People also ask, related searches, top stories, the local pack, the knowledge graph and the AI Overview when Google shows one. Each page is 10 results; page N returns results N*10-9 to N*10 and is billed as N pages, because the first N*10 results are fetched. Set light=true for organic results only. Every response carries a confidence score. Google requires JavaScript from automated visitors, so results come from a licensed results feed rather than our own scrapers; failed requests are never charged.\n\nCost: 3 credit(s) per page. Failed requests are free.","tags":["serp"],"parameters":[{"name":"q","in":"query","required":true,"description":"Search query.","schema":{"type":"string"}},{"name":"gl","in":"query","required":false,"description":"Country to search from, e.g. us, gb, de.","schema":{"type":"string","default":"us"}},{"name":"hl","in":"query","required":false,"description":"Interface language, e.g. en, de, pt-BR.","schema":{"type":"string","default":"en"}},{"name":"num","in":"query","required":false,"description":"Results per page. Always 10: Google removed num=100 in September 2025. For deeper rankings request page=2..10 (one request per page).","schema":{"type":"integer","default":10}},{"name":"page","in":"query","required":false,"description":"Results page (1-10); page 2 = results 11-20.","schema":{"type":"integer","default":1}},{"name":"location","in":"query","required":false,"description":"Search as if from this place, as a Google canonical location name such as 'Austin,Texas,United States' (sent as the uule parameter).","schema":{"type":"string","default":null}},{"name":"device","in":"query","required":false,"description":"Desktop or mobile results.","schema":{"type":"string","default":"desktop"}},{"name":"safe","in":"query","required":false,"description":"SafeSearch filtering.","schema":{"type":"string","default":"off"}},{"name":"light","in":"query","required":false,"description":"Organic results only (smaller, faster response).","schema":{"type":"boolean","default":false}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/search/google/ai-mode":{"get":{"operationId":"serp_google_ai_mode","summary":"Google AI Mode","description":"The answer Google AI Mode gives to a question, as text (Markdown), with every source it cites (title, link, site), plus any products and videos it shows. Use it to track whether and how your brand or pages are cited in Google's AI answers. AI Mode is not available in every country or language. Results come from a licensed results feed; failed requests are never charged.\n\nCost: 6 credit(s) per request. Failed requests are free.","tags":["serp"],"parameters":[{"name":"q","in":"query","required":true,"description":"Question or search query to ask Google AI Mode.","schema":{"type":"string"}},{"name":"gl","in":"query","required":false,"description":"Country to ask from, e.g. us, gb, in. AI Mode is not available everywhere.","schema":{"type":"string","default":"us"}},{"name":"hl","in":"query","required":false,"description":"Answer language, e.g. en.","schema":{"type":"string","default":"en"}},{"name":"location","in":"query","required":false,"description":"Ask as if from this place, e.g. 'Austin,Texas,United States'.","schema":{"type":"string","default":null}},{"name":"device","in":"query","required":false,"description":"Desktop or mobile.","schema":{"type":"string","default":"desktop"}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/search/google/autocomplete":{"get":{"operationId":"serp_google_autocomplete","summary":"Google Autocomplete","description":"The keyword suggestions Google shows while someone types, for any partial query, language and country. Useful for keyword research, content ideas and search-box features.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["serp"],"parameters":[{"name":"q","in":"query","required":true,"description":"Partial query to complete, e.g. 'how to'.","schema":{"type":"string"}},{"name":"hl","in":"query","required":false,"description":"Language of the suggestions, e.g. en, de, pt-BR.","schema":{"type":"string","default":"en"}},{"name":"gl","in":"query","required":false,"description":"Country to localise suggestions for, e.g. us, gb, de.","schema":{"type":"string","default":"us"}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/search/google/books":{"get":{"operationId":"serp_google_books","summary":"Google Books","description":"Search Google Books through Google's official Books API: volume id, title, subtitle, authors, publisher, published date, description, text snippet, ISBN-10 and ISBN-13, page count, categories, average rating and rating count, language, cover thumbnails, preview, info and canonical links, sale info (saleability, list and retail price, buy link) and access info (viewability, public domain, ePub/PDF availability, web reader link). Search free text or by title, author, publisher, subject or ISBN; filter by language, books or magazines, previewable or free eBooks; sort by relevance or newest; up to 40 results per page and the first 1,000 results in total. Google limits how many API calls can be made per day; when that quota is used up the request fails with a clear, retryable error and is never charged, and so are empty pages.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["serp"],"parameters":[{"name":"q","in":"query","required":false,"description":"Free-text search. Books API operators work inside it: intitle:, inauthor:, inpublisher:, subject:, isbn:, lccn:, oclc:.","schema":{"type":"string","default":null}},{"name":"intitle","in":"query","required":false,"description":"Words or a phrase in the title.","schema":{"type":"string","default":null}},{"name":"inauthor","in":"query","required":false,"description":"Author name.","schema":{"type":"string","default":null}},{"name":"inpublisher","in":"query","required":false,"description":"Publisher name.","schema":{"type":"string","default":null}},{"name":"subject","in":"query","required":false,"description":"Category/subject, e.g. Fiction.","schema":{"type":"string","default":null}},{"name":"isbn","in":"query","required":false,"description":"ISBN-10 or ISBN-13 (dashes are ignored).","schema":{"type":"string","default":null}},{"name":"lang","in":"query","required":false,"description":"Only books in this language (ISO 639-1 code, e.g. en, fr).","schema":{"type":"string","default":null}},{"name":"print_type","in":"query","required":false,"description":"Books, magazines or both.","schema":{"type":"string","default":"all"}},{"name":"order","in":"query","required":false,"description":"relevance or newest first.","schema":{"type":"string","default":"relevance"}},{"name":"filter","in":"query","required":false,"description":"Only volumes with a preview (partial), fully viewable (full), free or paid Google eBooks, or any eBook.","schema":{"type":"string","default":null}},{"name":"country","in":"query","required":false,"description":"Country for availability and prices (2-letter code). Google needs one when it cannot place the server.","schema":{"type":"string","default":"US"}},{"name":"page","in":"query","required":false,"description":"Results page.","schema":{"type":"integer","default":1}},{"name":"num","in":"query","required":false,"description":"Results per page, 1-40.","schema":{"type":"integer","default":10}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/search/google/images":{"get":{"operationId":"serp_google_images","summary":"Google Images Search","description":"Up to 100 Google Images results for any query, country, language and location: image title, alt text, the page it appears on, the source site, the full-size image URL and Google's thumbnail, plus related searches. Google Images blocks automated visitors, so results come from a licensed results feed. Failed requests are never charged.\n\nCost: 3 credit(s) per request. Failed requests are free.","tags":["serp"],"parameters":[{"name":"q","in":"query","required":true,"description":"Image search query.","schema":{"type":"string"}},{"name":"gl","in":"query","required":false,"description":"Country to search from, e.g. us, gb, de.","schema":{"type":"string","default":"us"}},{"name":"hl","in":"query","required":false,"description":"Interface language, e.g. en, de, pt-BR.","schema":{"type":"string","default":"en"}},{"name":"location","in":"query","required":false,"description":"Search as if from this place, e.g. 'Austin,Texas,United States'.","schema":{"type":"string","default":null}},{"name":"num","in":"query","required":false,"description":"Images to return (1-100).","schema":{"type":"integer","default":100}},{"name":"safe","in":"query","required":false,"description":"SafeSearch on.","schema":{"type":"boolean","default":false}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/search/google/patents/details":{"get":{"operationId":"serp_google_patent","summary":"Google Patent Details","description":"One patent's page on Google Patents by publication number (US9876543B2, EP1234567A1, WO2017120318A1, ...): title, abstract, inventors, current and original assignees, priority, filing, publication, grant and expected expiration dates, legal status, PDF link, claim count with the first claim and the number of independent claims, description length, CPC classifications, patent and non-patent citations, cited-by and family citation counts with the citing documents, the patent family (family id, applications, countries, also published as), similar documents, the event timeline, legal events and drawing images. Text is in English by default (Google's machine translation for non-English originals). Unknown numbers, blocked or verification pages are never charged.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["serp"],"parameters":[{"name":"patent_id","in":"query","required":true,"description":"Publication number such as US9876543B2, EP1234567A1, WO2017120318A1 or CN115498949A, or a patents.google.com/patent/... URL.","schema":{"type":"string"}},{"name":"language","in":"query","required":false,"description":"Page language: en shows Google's English text (machine-translated for non-English originals); use the original language code (de, zh, ja, ...) for the original text.","schema":{"type":"string","default":"en"}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/search/google/patents":{"get":{"operationId":"serp_google_patents","summary":"Google Patents Search","description":"Google Patents search results for any query, inventor or assignee, with filters for patent office (US, EP, WO, CN, ...), priority, filing or publication date range, granted or application, utility or design, original language and sort order: publication number, title, snippet, first inventor and assignee, priority, filing, publication and grant dates, PDF link, thumbnail and figure images, per-country family status, the total result count, plus the top assignees, inventors and CPC classes among the matches. 10 to 100 results per page; Google Patents stops at the 1,000th result. Use Google Patent Details for one patent's claims, citations and family. Empty pages, blocked or verification pages are never charged.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["serp"],"parameters":[{"name":"q","in":"query","required":false,"description":"Search terms in Google Patents syntax, e.g. 'solar panel', '\"lithium ion\" battery', '(drone OR uav) AND delivery', or CPC=H01M10/0525.","schema":{"type":"string","default":null}},{"name":"inventor","in":"query","required":false,"description":"Inventor name.","schema":{"type":"string","default":null}},{"name":"assignee","in":"query","required":false,"description":"Assignee (owner) name, e.g. Tesla.","schema":{"type":"string","default":null}},{"name":"country","in":"query","required":false,"description":"Patent office codes, comma-separated: US, EP, WO, CN, JP, KR, DE, ...","schema":{"type":"string","default":null}},{"name":"after","in":"query","required":false,"description":"Only documents dated on or after this day (YYYY-MM-DD).","schema":{"type":"string","default":null}},{"name":"before","in":"query","required":false,"description":"Only documents dated on or before this day (YYYY-MM-DD).","schema":{"type":"string","default":null}},{"name":"date_type","in":"query","required":false,"description":"Which date before/after apply to.","schema":{"type":"string","default":"priority"}},{"name":"status","in":"query","required":false,"description":"grant = granted patents only, application = applications only.","schema":{"type":"string","default":null}},{"name":"type","in":"query","required":false,"description":"Utility patents or design patents.","schema":{"type":"string","default":null}},{"name":"language","in":"query","required":false,"description":"Original document language(s): english, german, chinese, french, spanish, japanese, korean, ...","schema":{"type":"string","default":null}},{"name":"sort","in":"query","required":false,"description":"relevance, new (newest first) or old (oldest first).","schema":{"type":"string","default":"relevance"}},{"name":"page","in":"query","required":false,"description":"Results page (Google Patents stops at the 1,000th result).","schema":{"type":"integer","default":1}},{"name":"num","in":"query","required":false,"description":"Results per page, 10-100.","schema":{"type":"integer","default":10}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/search/google/trends":{"get":{"operationId":"serp_google_trends","summary":"Google Trends","description":"Google Trends data for up to 5 search terms or topics: interest over time (0-100 index per week, day or hour), interest by country, region, metro or city, and the top and rising related queries and topics. Any region, time range (past hour to 2004-present), category and Google property (web, news, images, YouTube, Shopping). Google rate-limits Trends heavily; a rate-limited request moves to the next pool and is never charged.\n\nCost: 2 credit(s) per request. Failed requests are free.","tags":["serp"],"parameters":[{"name":"q","in":"query","required":true,"description":"Up to 5 comma-separated search terms to compare, e.g. 'python,javascript'. A Freebase topic id such as /m/05z1_ compares the topic instead of the literal term.","schema":{"type":"string"}},{"name":"geo","in":"query","required":false,"description":"Region: empty for worldwide, a country (US), a subdivision (US-CA, GB-ENG) or a US metro (US-NY-501).","schema":{"type":"string","default":""}},{"name":"time","in":"query","required":false,"description":"Time range: now 1-H, now 4-H, now 1-d, now 7-d, today 1-m, today 3-m, today 12-m, today 5-y, all, or 'YYYY-MM-DD YYYY-MM-DD'.","schema":{"type":"string","default":"today 12-m"}},{"name":"category","in":"query","required":false,"description":"Google Trends category id; 0 = all categories.","schema":{"type":"integer","default":0}},{"name":"property","in":"query","required":false,"description":"Which Google search to measure: web, news, images, youtube or froogle (Google Shopping).","schema":{"type":"string","default":"web"}},{"name":"hl","in":"query","required":false,"description":"Language for labels and region names, e.g. en-US, de, fr.","schema":{"type":"string","default":"en-US"}},{"name":"tz","in":"query","required":false,"description":"Time-zone offset in minutes, Google's convention (minutes behind UTC: 300 = New York winter, -60 = Berlin winter). Shifts the hourly and daily buckets; 0 = UTC.","schema":{"type":"integer","default":0}},{"name":"data_types","in":"query","required":false,"description":"Which sections to return: interest_over_time, interest_by_region, related_queries, related_topics (related topics exist for a single term only).","schema":{"type":"array","items":{"enum":["interest_over_time","interest_by_region","related_queries","related_topics"],"type":"string"}},"style":"form","explode":false},{"name":"resolution","in":"query","required":false,"description":"Granularity of interest_by_region; default is countries for worldwide and subregions inside a country.","schema":{"type":"string","default":null}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/search/google/trends/trending":{"get":{"operationId":"serp_google_trends_trending","summary":"Google Trends Trending Now","description":"The searches trending right now in any country on Google Trends: each query with its approximate search volume (for example 50K+), when it started trending, a picture and the news articles behind it (title, link, publisher and image). Useful for newsrooms, content calendars and real-time marketing.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["serp"],"parameters":[{"name":"geo","in":"query","required":false,"description":"Country to read trending searches for (2-letter code), e.g. us, gb, de, in.","schema":{"type":"string","default":"us"}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/search/naver":{"get":{"operationId":"serp_naver","summary":"Naver Search","description":"Live results from Naver, Korea's largest search engine, for any query: the web documents tab with external web pages and Naver blog and cafe posts in Naver's own order - title, link, displayed URL, snippet, site or author name, date, sitelinks and the result type (web, blog or cafe). Up to 20 results per page. Verification pages are detected and never charged.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["serp"],"parameters":[{"name":"q","in":"query","required":true,"description":"Search query (Korean or any language).","schema":{"type":"string"}},{"name":"page","in":"query","required":false,"description":"Results page (1-10), up to 20 results per page.","schema":{"type":"integer","default":1}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/search/yahoo":{"get":{"operationId":"serp_yahoo","summary":"Yahoo Search","description":"Live Yahoo web results for any query on Yahoo's US or regional sites: organic results with title, the real destination link (Yahoo's redirect links are unwrapped), displayed URL, snippet, date and sitelinks, plus related searches. About 7 results per page, pages 1-10. Verification and consent pages are detected and never charged.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["serp"],"parameters":[{"name":"q","in":"query","required":true,"description":"Search query.","schema":{"type":"string"}},{"name":"market","in":"query","required":false,"description":"Yahoo regional site to search: ar, au, br, ca, de, es, fr, gb, hk, in, it, mx, nz, ph, sg, tw, us (uk is accepted for gb).","schema":{"type":"string","default":"us"}},{"name":"page","in":"query","required":false,"description":"Results page (1-10), about 7 results per page.","schema":{"type":"integer","default":1}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/search/yandex":{"get":{"operationId":"serp_yandex","summary":"Yandex Search","description":"Live Yandex web results for any query on yandex.com, yandex.ru, yandex.com.tr and the other Yandex sites, with an optional Yandex region ID: organic results with title, link, displayed path and snippet, plus related searches. Ads are left out. Yandex's SmartCaptcha pages are detected and never charged.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["serp"],"parameters":[{"name":"q","in":"query","required":true,"description":"Search query.","schema":{"type":"string"}},{"name":"domain","in":"query","required":false,"description":"Yandex site to search: yandex.com (international), yandex.ru, yandex.com.tr, yandex.kz, yandex.by or yandex.uz.","schema":{"type":"string","default":"yandex.com"}},{"name":"lr","in":"query","required":false,"description":"Yandex region ID for local results, e.g. 213 Moscow, 2 Saint Petersburg, 11508 Istanbul.","schema":{"type":"string","default":null}},{"name":"page","in":"query","required":false,"description":"Results page (1-10), about 10 results per page.","schema":{"type":"integer","default":1}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/social/pinterest/profile":{"get":{"operationId":"social_pinterest_profile","summary":"Pinterest Profile & Board","description":"A public Pinterest profile or board exactly as a logged-out visitor sees it: name, username, about, website (and whether the domain is verified), verified badge, followers, following, pin and board counts, profile views, avatar and cover, plus the most recent pins with title, description, outbound link, image, saves, reactions and date. Pass a board URL or board slug to get that board's details and pins instead. Private profiles are never returned; e-mail addresses and phone numbers in free text are masked. Unknown profiles, blocks and failures are free.\n\nCost: 2 credit(s) per request. Failed requests are free.","tags":["social"],"parameters":[{"name":"username","in":"query","required":true,"description":"Pinterest username (e.g. 'nasa'), a profile URL, or a board URL such as https://www.pinterest.com/nasa/humans-in-space/.","schema":{"type":"string"}},{"name":"board","in":"query","required":false,"description":"Optional board slug from the board URL (e.g. 'humans-in-space'). Returns that board and its pins instead of the profile.","schema":{"type":"string","default":null}},{"name":"limit","in":"query","required":false,"description":"How many recent pins to include (0-25).","schema":{"type":"integer","default":10}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/social/tiktok/profile":{"get":{"operationId":"social_tiktok_profile","summary":"TikTok Profile","description":"A public TikTok creator or brand profile exactly as a signed-out visitor sees it: nickname, handle, verified badge, bio and bio link, exact follower, following, like and video counts, avatar and join date, plus the latest videos (id, caption, date, plays, cover, link) from TikTok's public creator embed. Private and banned accounts are never returned. E-mail addresses and phone numbers inside bios and captions are masked. Unknown accounts, blocks and failures are free.\n\nCost: 2 credit(s) per request. Failed requests are free.","tags":["social"],"parameters":[{"name":"username","in":"query","required":true,"description":"TikTok handle with or without @ (e.g. 'tiktok'), or a profile URL such as https://www.tiktok.com/@tiktok.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"How many of the latest videos to include (0-10). 0 returns the profile only.","schema":{"type":"integer","default":10}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/social/tiktok/video":{"get":{"operationId":"social_tiktok_video","summary":"TikTok Video","description":"One public TikTok video by URL (including vm.tiktok.com short links) or video id: caption, author, publish date, exact plays, likes, comments, shares and saves, duration, cover, music, hashtags, language and the subtitle / auto-caption (WebVTT) links TikTok exposes to signed-out visitors. Private, removed and unknown videos are free. E-mail addresses and phone numbers inside captions are masked.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["social"],"parameters":[{"name":"url","in":"query","required":false,"description":"Video URL, e.g. https://www.tiktok.com/@tiktok/video/7704834703446117662 or a vm.tiktok.com short link.","schema":{"type":"string","default":null}},{"name":"video_id","in":"query","required":false,"description":"Numeric TikTok video id. Used when url is not given.","schema":{"type":"string","default":null}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/url/broken-links":{"get":{"operationId":"url_broken_links","summary":"Broken Link Checker","description":"Crawl up to `limit` pages of a website and check every link found on them, internal and external (and optionally images): broken links (404, 410, 5xx, DNS and connection errors, timeouts) with the HTTP status or error, every page they appear on and their anchor text; internal redirect chains; links that refused the check (401/403/429) listed separately so they are not mistaken for broken; and a summary. HEAD first with a GET fallback, de-duplicated, concurrency-limited, short timeouts. Respects robots.txt and Crawl-delay by default. Charged per page crawled (link checks are free); failed crawls are not charged.\n\nCost: 1 credit(s) per page. Failed requests are free.","tags":["url"],"parameters":[{"name":"url","in":"query","required":true,"description":"Start URL: a site root or any page. Pages on the same site (same registrable domain) are crawled; links on them are checked.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of pages to crawl for links. Charged 1 credit per page crawled; link checks are free.","schema":{"type":"integer","default":10}},{"name":"max_depth","in":"query","required":false,"description":"How many links deep to crawl from the start page.","schema":{"type":"integer","default":3}},{"name":"check_external","in":"query","required":false,"description":"Also check links that point to other websites.","schema":{"type":"boolean","default":true}},{"name":"check_images","in":"query","required":false,"description":"Also check image sources (<img src>).","schema":{"type":"boolean","default":false}},{"name":"respect_robots","in":"query","required":false,"description":"Don't crawl or check URLs on this site that robots.txt disallows, and honour its Crawl-delay.","schema":{"type":"boolean","default":true}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/url/crawl":{"get":{"operationId":"url_crawl","summary":"Website Crawler (Markdown for RAG)","description":"Crawl a website from a start URL (and optionally its XML sitemap) and get every page back as clean Markdown with title, description, language, word count and link depth. Built for RAG and LLM ingestion: navigation and boilerplate removed, duplicates dropped, very long pages truncated and flagged. Same-site only, include/exclude path patterns (glob or regex), optional JavaScript rendering in real Chrome. Polite by design: robots.txt and Crawl-delay respected, at most 4 requests in flight, hard page, byte and time limits. Charged per page returned (1 credit, 2 with rendering); failed crawls are free.\n\nCost: 1 credit(s) per page. Failed requests are free.","tags":["url"],"parameters":[{"name":"url","in":"query","required":true,"description":"Start URL: a site root or any page. Only pages on the same site are crawled (same registrable domain, so www. and other subdomains are included).","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of pages to return. Charged per page returned: 1 credit, 2 with render=true.","schema":{"type":"integer","default":10}},{"name":"max_depth","in":"query","required":false,"description":"How many links deep to follow from the start page (0 = only the start page and, with use_sitemap, the sitemap URLs).","schema":{"type":"integer","default":2}},{"name":"include_paths","in":"query","required":false,"description":"Only crawl URLs whose path matches one of these patterns. Glob (/blog/*, *.html), regex (prefix re: or start with ^), or a plain path prefix (/docs). Matched against the URL path and query. The start page is always read for links.","schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":false},{"name":"exclude_paths","in":"query","required":false,"description":"Never crawl URLs whose path matches one of these patterns (exclude wins over include). Glob (/blog/*, *.html), regex (prefix re: or start with ^), or a plain path prefix (/docs). Matched against the URL path and query.","schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":false},{"name":"use_sitemap","in":"query","required":false,"description":"Also seed the crawl with the URLs listed in the site's XML sitemap (found through robots.txt or /sitemap.xml).","schema":{"type":"boolean","default":false}},{"name":"render","in":"query","required":false,"description":"Render every page in real Chrome so JavaScript-built content is captured. Slower; 2 credits per page.","schema":{"type":"boolean","default":false}},{"name":"include_links","in":"query","required":false,"description":"Keep hyperlinks in the Markdown.","schema":{"type":"boolean","default":false}},{"name":"respect_robots","in":"query","required":false,"description":"Skip URLs disallowed by the site's robots.txt and honour its Crawl-delay.","schema":{"type":"boolean","default":true}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/url/geo-audit":{"get":{"operationId":"url_geo_audit","summary":"GEO / AI-Readiness Audit","description":"How ready a page is to be read, understood and cited by AI search engines and assistants (ChatGPT, Claude, Perplexity, Gemini, Copilot). Checks whether AI crawlers are allowed in robots.txt, llms.txt, server-rendered content, structured data, an answer-first intro, lists and tables, dates, authorship, canonical, indexability, page weight and HTTPS. Returns a 0-100 score, an A-F grade, every check with plain-English advice, and a per-crawler access map. Rule-based and repeatable (no AI guesswork). Respects robots.txt by default. Failed fetches are not charged.\n\nCost: 2 credit(s) per request. Failed requests are free.","tags":["url"],"parameters":[{"name":"url","in":"query","required":true,"description":"Public http(s) URL of the page to audit.","schema":{"type":"string"}},{"name":"respect_robots","in":"query","required":false,"description":"Refuse URLs disallowed by the site's robots.txt.","schema":{"type":"boolean","default":true}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/url/headers":{"get":{"operationId":"url_headers","summary":"HTTP Headers & Security Check","description":"The HTTP response headers of any URL with the full redirect chain (status and timing of every hop), compression, caching and CDN details, and a security-headers grade (HSTS, CSP, clickjacking, MIME sniffing, Referrer-Policy, Permissions-Policy, COOP/CORP) with a 0-100 score, an A-F grade and plain-English findings. Responses with HTTP 401/403/429 or 5xx are returned but not charged.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["url"],"parameters":[{"name":"url","in":"query","required":true,"description":"Public http(s) URL to request.","schema":{"type":"string"}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/url/html":{"get":{"operationId":"url_html","summary":"Page HTML","description":"The raw HTML of any public web page with final URL, status code, redirect chain and key headers. Respects robots.txt by default. Failed fetches (blocks, 5xx, timeouts) are not charged.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["url"],"parameters":[{"name":"url","in":"query","required":true,"description":"Public http(s) URL to fetch.","schema":{"type":"string"}},{"name":"respect_robots","in":"query","required":false,"description":"Refuse URLs disallowed by the site's robots.txt.","schema":{"type":"boolean","default":true}},{"name":"render","in":"query","required":false,"description":"Render JavaScript in real Chrome first (+1 credit). Images, media and fonts are skipped.","schema":{"type":"boolean","default":false}},{"name":"wait_ms","in":"query","required":false,"description":"With render=true: extra wait after load for late content.","schema":{"type":"integer","default":1000}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/url/keyword-density":{"get":{"operationId":"url_keyword_density","summary":"Keyword Density","description":"The words and phrases (1-3 word n-grams) a page repeats most, with counts and density as a percentage of all words. Stopwords are excluded.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["url"],"parameters":[{"name":"url","in":"query","required":true,"description":"Public http(s) URL to analyse.","schema":{"type":"string"}},{"name":"top","in":"query","required":false,"description":"How many terms to return per n-gram size.","schema":{"type":"integer","default":20}},{"name":"ngrams","in":"query","required":false,"description":"N-gram sizes (1, 2 and/or 3).","schema":{"type":"array","items":{"type":"integer"}},"style":"form","explode":false},{"name":"respect_robots","in":"query","required":false,"description":"Refuse URLs disallowed by the site's robots.txt.","schema":{"type":"boolean","default":true}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/url/links":{"get":{"operationId":"url_links","summary":"Page Links Extractor","description":"Every link on a web page as an absolute URL with its anchor text, internal/external type and rel flags (nofollow, sponsored, ugc), plus totals and the external domains linked most. Email, phone, JavaScript and same-page anchor links are counted separately. Linked pages are not fetched. Respects robots.txt by default. Failed fetches are not charged.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["url"],"parameters":[{"name":"url","in":"query","required":true,"description":"Public http(s) URL of the page whose links to list.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of links to return (counts cover all links).","schema":{"type":"integer","default":500}},{"name":"respect_robots","in":"query","required":false,"description":"Refuse URLs disallowed by the site's robots.txt.","schema":{"type":"boolean","default":true}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/url/markdown":{"get":{"operationId":"url_markdown","summary":"URL to Markdown","description":"The main content of a web page as clean Markdown (boilerplate, navigation and ads removed) with title, description, author, publish date and language. Built for LLMs and RAG pipelines. Respects robots.txt by default.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["url"],"parameters":[{"name":"url","in":"query","required":true,"description":"Public http(s) URL to convert.","schema":{"type":"string"}},{"name":"include_links","in":"query","required":false,"description":"Keep hyperlinks in the Markdown.","schema":{"type":"boolean","default":true}},{"name":"respect_robots","in":"query","required":false,"description":"Refuse URLs disallowed by the site's robots.txt.","schema":{"type":"boolean","default":true}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/url/metadata":{"get":{"operationId":"url_metadata","summary":"Page Metadata & SEO Tags","description":"Every on-page SEO signal of a web page in one call: title and meta description (with lengths), canonical, robots directives, language, hreflang, Open Graph and Twitter cards, favicons, all JSON-LD structured data, microdata types, the H1-H3 outline, word count, and a list of issues to fix. Respects robots.txt by default. Failed fetches are not charged.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["url"],"parameters":[{"name":"url","in":"query","required":true,"description":"Public http(s) URL of the page to inspect.","schema":{"type":"string"}},{"name":"respect_robots","in":"query","required":false,"description":"Refuse URLs disallowed by the site's robots.txt.","schema":{"type":"boolean","default":true}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/url/pagespeed":{"get":{"operationId":"url_pagespeed","summary":"PageSpeed & Core Web Vitals Test","description":"Load a page in real headless Chrome (mobile or desktop emulation, as in Lighthouse) and measure it: TTFB, First Contentful Paint, Largest Contentful Paint (with the LCP element), Cumulative Layout Shift, Total Blocking Time from long tasks, DOMContentLoaded and load time. Also total transfer size and requests by type, the largest resources, third-party domains, render-blocking CSS/JS, image hints (oversized, legacy formats, not lazy-loaded, no dimensions), compression, caching and HTTP/2. Returns a 0-100 Lighthouse-style score, an A-F grade and graded findings with fixes. Respects robots.txt by default. Failed loads are not charged.\n\nCost: 3 credit(s) per request. Failed requests are free.","tags":["url"],"parameters":[{"name":"url","in":"query","required":true,"description":"Public http(s) URL of the page to test.","schema":{"type":"string"}},{"name":"device","in":"query","required":false,"description":"Emulated device, as in Lighthouse: mobile (412x823 viewport, touch, 4x CPU slowdown) or desktop (1350x940). Network is not throttled.","schema":{"type":"string","default":"mobile"}},{"name":"wait_ms","in":"query","required":false,"description":"Keep measuring this long after the page settles, to catch late paints and layout shifts.","schema":{"type":"integer","default":1500}},{"name":"respect_robots","in":"query","required":false,"description":"Refuse URLs disallowed by the site's robots.txt.","schema":{"type":"boolean","default":true}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/url/readability":{"get":{"operationId":"url_readability","summary":"Article Extractor & Readability","description":"Reader-mode extraction for one URL: the article's title, byline, published and modified dates, site name, language, lead image and excerpt, with the main text as clean Markdown (navigation, ads and comments removed). Adds word, sentence and paragraph counts, reading time and a Flesch reading-ease score (with the matching adaptation for German, Spanish, French, Italian, Dutch and Portuguese). Respects robots.txt by default. Failed fetches are not charged.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["url"],"parameters":[{"name":"url","in":"query","required":true,"description":"Public http(s) URL of the article or page.","schema":{"type":"string"}},{"name":"include_links","in":"query","required":false,"description":"Keep hyperlinks in the Markdown.","schema":{"type":"boolean","default":false}},{"name":"include_images","in":"query","required":false,"description":"Keep images in the Markdown.","schema":{"type":"boolean","default":false}},{"name":"respect_robots","in":"query","required":false,"description":"Refuse URLs disallowed by the site's robots.txt.","schema":{"type":"boolean","default":true}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/url/screenshot":{"get":{"operationId":"url_screenshot","summary":"Screenshot","description":"A screenshot of any public web page, rendered in real Chrome with JavaScript. Viewport or full page, JPEG or PNG, returned as a hosted image URL (kept 7 days) or inline base64. Respects robots.txt by default.\n\nCost: 2 credit(s) per request. Failed requests are free.","tags":["url"],"parameters":[{"name":"url","in":"query","required":true,"description":"Public http(s) URL to capture.","schema":{"type":"string"}},{"name":"full_page","in":"query","required":false,"description":"Capture the whole page height (capped at 16,000 px).","schema":{"type":"boolean","default":false}},{"name":"width","in":"query","required":false,"description":"Viewport width in pixels.","schema":{"type":"integer","default":1280}},{"name":"height","in":"query","required":false,"description":"Viewport height in pixels.","schema":{"type":"integer","default":800}},{"name":"format","in":"query","required":false,"description":"Image format.","schema":{"type":"string","default":"jpeg"}},{"name":"quality","in":"query","required":false,"description":"JPEG quality.","schema":{"type":"integer","default":80}},{"name":"wait_ms","in":"query","required":false,"description":"Extra wait after load, for animations and lazy content.","schema":{"type":"integer","default":1000}},{"name":"delivery","in":"query","required":false,"description":"Hosted image URL (kept 7 days) or inline base64.","schema":{"type":"string","default":"url"}},{"name":"respect_robots","in":"query","required":false,"description":"Refuse URLs disallowed by the site's robots.txt.","schema":{"type":"boolean","default":true}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/url/sitemap":{"get":{"operationId":"url_sitemap","summary":"Sitemap Parser","description":"Every page URL listed in a website's XML sitemaps, with last-modified date, change frequency and priority. Give a sitemap URL, or just a domain and the sitemaps are found through robots.txt or the usual locations. Follows sitemap index files, reads gzip (.xml.gz) and plain-text sitemaps, and fetches up to 20 sitemap files per call. Not charged when no sitemap is found.\n\nCost: 2 credit(s) per request. Failed requests are free.","tags":["url"],"parameters":[{"name":"url","in":"query","required":true,"description":"A sitemap URL (XML, .xml.gz or .txt), or a site root/domain to discover its sitemaps.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of page URLs to return.","schema":{"type":"integer","default":1000}},{"name":"max_files","in":"query","required":false,"description":"Maximum number of sitemap files to fetch (index files count).","schema":{"type":"integer","default":5}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/youtube/channel":{"get":{"operationId":"video_youtube_channel","summary":"YouTube Channel","description":"A YouTube channel's public profile and latest uploads, by handle, channel ID or URL: name, handle, ID, full description, subscriber, video and view counts, join date, country when shown, external links, avatar, banner and verified flag, plus up to 100 of the latest videos with views, duration and publish date. Collected exactly as a signed-out visitor sees the channel page and its About panel. Unknown channels, blocks and failures are free.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["video"],"parameters":[{"name":"channel","in":"query","required":true,"description":"Channel handle (@name), channel ID (UC...) or a youtube.com channel URL (/@name, /channel/UC..., /c/name, /user/name).","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"How many of the latest videos to list (0 for none). The price stays 1 credit.","schema":{"type":"integer","default":30}},{"name":"hl","in":"query","required":false,"description":"Interface language for texts such as dates.","schema":{"type":"string","default":"en"}},{"name":"gl","in":"query","required":false,"description":"Two-letter country code to view the channel from.","schema":{"type":"string","default":"us"}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/youtube/comments":{"get":{"operationId":"video_youtube_comments","summary":"YouTube Comments","description":"Public comments on one YouTube video, in YouTube's Top or Newest order, exactly as a signed-out visitor can load them: text, like count, published date, edited flag, reply count, pinned and creator-hearted flags, with optional replies. Commenter names are pseudonymized (\"Commenter 1\") unless you ask for them, and @mentions of those commenters are replaced the same way. Billed per comment returned, 1 credit per 20; videos with comments turned off, blocks and failures are free.\n\nCost: 0.05 credit(s) per comment. Failed requests are free.","tags":["video"],"parameters":[{"name":"video_id","in":"query","required":true,"description":"YouTube video ID (11 characters) or any youtube.com / youtu.be video, Shorts or live URL.","schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"description":"YouTube's comment order: Top or Newest first.","schema":{"type":"string","default":"top"}},{"name":"limit","in":"query","required":false,"description":"Maximum comments to return, replies included. Billed per comment returned (1 credit per 20).","schema":{"type":"integer","default":100}},{"name":"include_replies","in":"query","required":false,"description":"Also load the replies under each comment (they count towards limit).","schema":{"type":"boolean","default":false}},{"name":"max_replies_per_comment","in":"query","required":false,"description":"With include_replies: at most this many replies per comment.","schema":{"type":"integer","default":10}},{"name":"include_reviewer_names","in":"query","required":false,"description":"Return commenter display names (@handles), channel IDs and avatars. Off by default: authors are 'Commenter 1', 'Commenter 2', ... (stable within one response) and @mentions of them in comment text are replaced the same way.","schema":{"type":"boolean","default":false}},{"name":"hl","in":"query","required":false,"description":"Interface language (affects '2 days ago' texts).","schema":{"type":"string","default":"en"}},{"name":"gl","in":"query","required":false,"description":"Two-letter country code to view the video from.","schema":{"type":"string","default":"us"}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/youtube/search":{"get":{"operationId":"video_youtube_search","summary":"YouTube Search","description":"YouTube search results exactly as a signed-out visitor sees them: videos (title, link, channel, published date, views, duration, thumbnail, description snippet, badges), Shorts, channels and playlists or courses, with filters for result type, upload date, duration and sort order. Fetches as many result pages as your limit needs and hands back a next_page_token to continue later. Billed per results page fetched (up to about 20 results each; pages heavy with Shorts shelves hold fewer, and type=video gives the densest pages); verification pages, blocks and failures are free.\n\nCost: 1 credit(s) per page. Failed requests are free.","tags":["video"],"parameters":[{"name":"q","in":"query","required":true,"description":"Search query, as typed into YouTube's search box.","schema":{"type":"string"}},{"name":"type","in":"query","required":false,"description":"Only return this kind of result (YouTube's own type filter).","schema":{"type":"string","default":"all"}},{"name":"sort","in":"query","required":false,"description":"Result order.","schema":{"type":"string","default":"relevance"}},{"name":"upload_date","in":"query","required":false,"description":"Only videos uploaded within this period.","schema":{"type":"string","default":"any"}},{"name":"duration","in":"query","required":false,"description":"Only videos of this length.","schema":{"type":"string","default":"any"}},{"name":"limit","in":"query","required":false,"description":"Maximum results of the requested type (videos, channels and playlists for type=all; Shorts shelves come along, capped at the same number). Each results page fetched holds up to about 20 and costs 1 credit.","schema":{"type":"integer","default":20}},{"name":"hl","in":"query","required":false,"description":"Interface language, e.g. en, de, pt-BR.","schema":{"type":"string","default":"en"}},{"name":"gl","in":"query","required":false,"description":"Two-letter country code whose results to show.","schema":{"type":"string","default":"us"}},{"name":"page_token","in":"query","required":false,"description":"next_page_token from a previous response, to continue the same search where it stopped.","schema":{"type":"string","default":null}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/youtube/transcript":{"get":{"operationId":"video_youtube_transcript","summary":"YouTube Transcript","description":"The captions of one YouTube video in the language you ask for, as timed segments (start, duration, text) plus the full text. Human-made captions are preferred and YouTube's auto-generated ones are the fallback; the response says which you got and lists every caption language on offer. Uses only the caption tracks the public watch page links to. Videos without captions in that language, verification pages, blocks and failures are free.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["video"],"parameters":[{"name":"video_id","in":"query","required":true,"description":"YouTube video ID (11 characters) or any youtube.com / youtu.be video, Shorts or live URL.","schema":{"type":"string"}},{"name":"lang","in":"query","required":false,"description":"Caption language, e.g. en, de, pt-BR. 'en' also matches regional tracks such as en-GB.","schema":{"type":"string","default":"en"}},{"name":"kind","in":"query","required":false,"description":"any: human-made captions when they exist, else YouTube's auto-generated ones. manual / auto: only that kind.","schema":{"type":"string","default":"any"}},{"name":"hl","in":"query","required":false,"description":"Interface language of the watch page.","schema":{"type":"string","default":"en"}},{"name":"gl","in":"query","required":false,"description":"Two-letter country code to view the video from.","schema":{"type":"string","default":"us"}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/youtube/video":{"get":{"operationId":"video_youtube_video","summary":"YouTube Video Details","description":"Public metadata of one YouTube video from its watch page, as a signed-out visitor sees it: title, description, channel with subscriber count, exact views and likes, comment count, publish and upload dates, duration, category, keywords, hashtags, thumbnails, chapters, live and family-safe flags, and the caption languages on offer. Accepts a video ID or any YouTube video, Shorts or live URL. Removed or private videos, verification pages, blocks and failures are free.\n\nCost: 1 credit(s) per request. Failed requests are free.","tags":["video"],"parameters":[{"name":"video_id","in":"query","required":true,"description":"YouTube video ID (11 characters) or any youtube.com / youtu.be video, Shorts or live URL.","schema":{"type":"string"}},{"name":"hl","in":"query","required":false,"description":"Interface language for texts such as dates.","schema":{"type":"string","default":"en"}},{"name":"gl","in":"query","required":false,"description":"Two-letter country code to view the video from.","schema":{"type":"string","default":"us"}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/domain/reverse-ids":{"get":{"operationId":"domain_reverse_ids","summary":"Reverse Analytics & AdSense ID Lookup","description":"Find other websites that share a Google Analytics, Google Tag Manager, AdSense, Meta Pixel or other tracking ID. Give an ID, or a domain to look up its IDs first. Sites sharing an ID are usually run by the same owner. Results come from Gridlode's own index of scanned top websites.\n\nCost: 3 credit(s) per request. Failed requests are free.","tags":["domain"],"parameters":[{"name":"id","in":"query","required":false,"description":"A tracking ID such as G-ABC123XYZ, UA-12345-1, GTM-ABCD12, ca-pub-1234567890123456 or a Meta Pixel ID. Leave empty when you pass a domain.","schema":{"type":"string"}},{"name":"domain","in":"query","required":false,"description":"A domain whose tracking IDs should be looked up first, e.g. example.com. Used when no id is given.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of related domains to return.","schema":{"type":"integer","default":100}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}},"/v1/contacts/company":{"get":{"operationId":"contacts_company_profile","summary":"Company Enrichment","description":"One call turns a domain or a company name into a company profile: official website, name and description, emails, phones and social profiles, technology stack and analytics IDs, domain age and registrar, hosting provider, mail provider, email-security grade and authority score. Give a company name and we find its website first. Runs several Gridlode engines in parallel for one bundled price; use bulk jobs to enrich whole lists.\n\nCost: 6 credit(s) per request. Failed requests are free.","tags":["contacts"],"parameters":[{"name":"domain","in":"query","required":false,"description":"Company domain, e.g. stripe.com. Costs 6 credits.","schema":{"type":"string"}},{"name":"company","in":"query","required":false,"description":"Company name when you don't know the domain, e.g. Stripe. We find the official website first. Costs 8 credits.","schema":{"type":"string"}},{"name":"country","in":"query","required":false,"description":"Optional two-letter country code to disambiguate a company name, e.g. de.","schema":{"type":"string"}},{"name":"max_age","in":"query","required":false,"description":"Accept a cached result up to this many seconds old, billed at 50%.","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Success envelope with `data`"},"400":{"description":"Invalid parameters (not charged)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Insufficient credits or spend cap reached"},"424":{"description":"The target site failed or timed out (not charged)"},"429":{"description":"Rate limited"}}}}}}