{"schema_version":"1.2","total":15,"limit":30,"offset":0,"filters":{"category":"scraping-api"},"tools":[{"slug":"crawlbase-crawling-api","name":"Crawlbase Crawling API","category":"scraping-api","provider_slug":"crawlbase","publisher":"Crawlbase","publisher_type":"official","website":"https://crawlbase.com/crawling-api/","summary":"Fetch page content with normal or JavaScript tokens, optional geo-routing and browser interaction controls.","tools":["python","nodejs","curl"],"capabilities":["javascript-rendering","country-targeting","sticky-sessions","browser-actions"],"outputs":["html","json"],"connection":"http-api","billing_basis":"Successful requests; JavaScript request configuration and extended scrolling affect billed usage.","facts":[{"label":"Token types","value":"Normal tokens fetch static responses; JavaScript tokens enable browser rendering. javascript=true can switch a normal-token request to the JavaScript path.","source_ids":["docs"]},{"label":"Browser controls","value":"JavaScript requests support page_wait, ajax_wait, scroll and css_click_selector.","source_ids":["docs"]},{"label":"Extended scrolling","value":"The first 8 seconds of page-load plus scrolling count as one request; each additional full 5 seconds adds one billed request, and a partial block is not billed (scroll_interval maximum 60 s).","source_ids":["docs"]},{"label":"HTTP-method limitation","value":"POST is supported with the normal token only; JavaScript-rendered requests use GET.","source_ids":["docs"]}],"setup":["Obtain the normal and JavaScript tokens from the account.","Call the Crawling API with token and target URL.","Use JavaScript-specific waits or scrolling only when necessary and budget for extended scrolling."],"limitations":["Exact dollar rates and account concurrency remain unverified. The docs bill only cb_status 200/207 with original_status 200, 201, 301, 302, 303, 307, 308, 404 or 410 (plus any custom_success_codes); all other statuses are free.","Do not assume a long scroll costs the same as one short fetch.","SDK compatibility is documented rather than executed."],"sources":[{"id":"docs","label":"Crawling API token, request and scrolling documentation","url":"https://crawlbase.com/docs/crawling-api","checked_at":"2026-09-27"}],"checked_at":"2026-10-26","review_due":"2026-11-25","evidence":"documented","url":"https://workingproxysites.info/tools/crawlbase-crawling-api","provider_url":"https://workingproxysites.info/t/80-crawlbase-proxies","review_overdue":false},{"slug":"decodo-web-scraping-api","name":"Decodo Web Scraping API","category":"scraping-api","provider_slug":"decodo","publisher":"Decodo","publisher_type":"official","website":"https://decodo.com/scraping/web","summary":"An HTTP API for rendered web content, with request-level choices for proxy pool and JavaScript execution.","tools":["python-requests","nodejs","curl","dify"],"capabilities":["javascript-rendering","premium-proxy-pool"],"outputs":["html","json"],"connection":"http-api","billing_basis":"Request credits vary by request complexity, including proxy pool and JavaScript rendering.","facts":[{"label":"HTTP integration","value":"The official Dify guide sends POST requests to https://scraper-api.decodo.com/v2/scrape using Basic authentication and a JSON body.","source_ids":["guide"]},{"label":"JavaScript rendering","value":"The documented payload uses headless=html to receive HTML after rendering.","source_ids":["guide"]},{"label":"Proxy selection","value":"The request can select proxy_pool=premium.","source_ids":["guide"]},{"label":"Cost model","value":"The current pricing page (now titled Web Data API) lists monthly subscriptions by volume (e.g. USD 19/month for up to 19K crawls or 38K pages) and does not price proxy pool or JavaScript rendering separately; Decodo's API documentation states request cost depends on the proxy pool (Standard/Premium) and rendering mode (Disabled/Enabled).","source_ids":["pricing","docs-billing"]}],"setup":["Obtain Web Scraping API credentials from the Decodo dashboard.","Configure an HTTP POST request with Basic authentication and the target URL in its JSON body.","Enable headless=html when the required content depends on JavaScript; choose the proxy pool for that target."],"limitations":["This pilot verifies the v2 HTTP workflow, not the older Advanced-plan documentation.","Exact output availability, async behavior, credit costs and failed-request billing should be checked against the selected current plan."],"sources":[{"id":"guide","label":"Official Dify integration with v2 request example","url":"https://decodo.com/blog/web-scraping-in-dify","checked_at":"2026-09-27"},{"id":"pricing","label":"Web Scraping API pricing","url":"https://decodo.com/scraping/web/pricing","checked_at":"2026-09-27"},{"id":"docs-billing","label":"Web Scraping API introduction: request cost by proxy pool and rendering mode","url":"https://help.decodo.com/docs/web-scraping-api-introduction","checked_at":"2026-10-26"}],"checked_at":"2026-10-26","review_due":"2026-11-25","evidence":"documented","url":"https://workingproxysites.info/tools/decodo-web-scraping-api","provider_url":"https://workingproxysites.info/t/3-decodo-proxies","review_overdue":false},{"slug":"exa-api","name":"Exa API","category":"scraping-api","provider_slug":null,"publisher":"Exa","publisher_type":"official","website":"https://exa.ai/docs/reference/search","summary":"Use direct HTTP Search to discover source URLs or Contents when URLs or document IDs are known. Choose returned text deliberately, inspect per-item statuses and compare request versus content-type charges.","tools":["http-api"],"capabilities":["web-search","web-scraping"],"outputs":["json","text","highlights"],"connection":"http-api","billing_basis":"Current account pricing: /search lite (and legacy instant) is $4 per 1,000 requests; auto (and legacy fast) is $7 per 1,000, including up to 10 results, with extra results at $1 per 1,000 results. /contents is $1 per 1,000 returned pages per content type: requesting text and highlights for one page counts as two. AI page summaries have a separately listed $1 per 1,000 pages charge. Rates and account terms can change.","facts":[{"label":"Unknown source URL","value":"POST /search with query and numResults. auto is the default. For low latency the current type is lite; instant and fast are documented as legacy ('Use lite instead') and still accept every search parameter. lite accepts only a limited parameter set (including numResults and contents.text), rejects requests that set any other parameter, and does not support freshness options that require live fetching. A contents.text option can request page text in the same search response, so a second Contents call is not always needed for returned results.","source_ids":["search"]},{"label":"Known source URL or ID","value":"POST /contents accepts either urls or document ids from a prior Search, not both in the same request. Request text, highlights or summaries intentionally for the known items.","source_ids":["contents"]},{"label":"Response content","value":"Both endpoints return JSON. Contents results can include text, highlights or summary when requested. The text option is described as plain markdown-style text, but the reference does not promise a separate Markdown response format.","source_ids":["search","contents"]},{"label":"Per-item acceptance","value":"The Contents response has results and statuses. For each requested URL or ID, check statuses[].id, status (success or error), optional source (cached or crawled) and error details before accepting results. A 200 response does not by itself prove every item succeeded.","source_ids":["contents"]},{"label":"Freshness choice","value":"For Contents, maxAgeHours: 0 requests fresh content; -1 uses cache only; a positive value accepts cache younger than that many hours; omission allows fallback fetching. A fresh request is not a success guarantee.","source_ids":["contents"]},{"label":"Search request price","value":"At the checked rate, instant Search is $4 per 1,000 requests and fast/auto are $7 per 1,000 for up to 10 results. Each result beyond 10 is separately priced at $1 per 1,000 results; AI page summaries add a separate page charge.","source_ids":["pricing"]},{"label":"Contents content-type price","value":"At the checked rate, /contents is $1 per 1,000 returned pages per content type. One page requested as text and highlights counts as two content types; AI page summaries are separately listed at $1 per 1,000 pages. costDollars is an estimate, not an invoice.","source_ids":["pricing","contents"]},{"label":"Account request path","value":"The documented key path uses Authorization: Bearer EXA_API_KEY or x-api-key for https://api.exa.ai. Account credit or key-budget exhaustion can return 402; rate-limit exhaustion can return 429. Confirm current account terms before production use.","source_ids":["search","contents","billing"]}],"decision_rows":[{"when":"Source URL unknown","request":"POST /search with a query, type: lite (instant is now legacy) and numResults: 5. Request contents.text in the same call if short page text helps evaluate results.","check":"Inspect each result URL and returned text; select a relevant source before using its contents. A result is a discovery lead, not a guaranteed fresh fetch.","billing":"At the checked rate, lite (and legacy instant) Search is $4 per 1,000 requests for up to 10 results; auto (and legacy fast) are $7 per 1,000.","source_ids":["search","pricing"]},{"when":"URL or document ID known","request":"POST /contents with either urls or ids and only the content types needed. Set maxAgeHours: 0 when requesting a fresh crawl.","check":"Match statuses[].id and status to each requested item, inspect error and source, then accept text only for successful results.","billing":"At the checked rate, Contents is $1 per 1,000 returned pages per content type; text plus highlights counts as two types.","source_ids":["contents","pricing"]}],"setup":["If you need to discover a source, use Search; if you already have a URL or Search document ID, use Contents directly. Request text in Search only if it helps choose a result.","Send application/json POST requests to https://api.exa.ai/search or https://api.exa.ai/contents with a private Authorization: Bearer EXA_API_KEY header (or the documented x-api-key alternative). The examples below are JSON bodies, not live calls.","Use the five-result instant Search example for discovery. For a known-URL batch, pass urls rather than ids and request only text with a size limit; maxAgeHours: 0 asks Exa to fetch fresh content.","For a Contents batch, reconcile each input against statuses[].id/status before using results. Check source and error details; estimate cost by returned pages and requested content types, and inspect current billing terms."],"limitations":["Exa Search discovers web sources; this record does not promise positional Google SERP snapshots or classify the service as a dedicated SERP API.","The Contents text is described as markdown-style text. The reference does not document a standalone Markdown output contract, so this record is not in the Markdown API collection.","Contents requires either urls or ids in a request. maxAgeHours: 0 requests fresh content but does not guarantee that a target can be fetched or that returned text is complete or accurate.","The listed rates are published account prices, not a measured bill. costDollars is an estimated response field; billing is computed from usage counters. Summary and extra-result options can change total cost.","The examples were parsed locally against documented fields. No Exa account request, target fetch, performance comparison or payment was tested."],"request_examples":[{"label":"Discover sources and short text — POST /search JSON body","code":"{\n  \"query\": \"official documentation for a library API\",\n  \"type\": \"lite\",\n  \"numResults\": 5,\n  \"contents\": {\n    \"text\": {\n      \"maxCharacters\": 1200\n    }\n  }\n}","source_ids":["search","pricing"]},{"label":"Read a known-URL batch freshly — POST /contents JSON body","code":"{\n  \"urls\": [\n    \"https://example.com/docs\",\n    \"https://example.com/unavailable\"\n  ],\n  \"text\": {\n    \"maxCharacters\": 1200\n  },\n  \"maxAgeHours\": 0\n}","source_ids":["contents","pricing"]}],"response_examples":[{"label":"Illustrative status shape for that two-URL batch (placeholders, not a live response)","code":"{\n  \"results\": [\n    {\n      \"title\": \"Example docs\",\n      \"url\": \"https://example.com/docs\",\n      \"id\": \"example-doc-id\",\n      \"text\": \"Example extracted text.\"\n    }\n  ],\n  \"statuses\": [\n    {\n      \"id\": \"https://example.com/docs\",\n      \"status\": \"success\",\n      \"source\": \"crawled\"\n    },\n    {\n      \"id\": \"https://example.com/unavailable\",\n      \"status\": \"error\",\n      \"error\": {\n        \"tag\": \"<provider error tag>\",\n        \"httpStatusCode\": 404\n      }\n    }\n  ]\n}","interpretation":"Map every submitted URL or ID to statuses[].id. Use text from the matching successful result; report or retry error items separately. The example uses placeholder values from the documented response schema and does not report an observed Exa fetch.","source_ids":["contents"]}],"sources":[{"id":"search","label":"Exa Search endpoint and optional contents","url":"https://exa.ai/docs/reference/search","checked_at":"2026-09-29"},{"id":"contents","label":"Exa Contents endpoint, freshness and per-item statuses","url":"https://exa.ai/docs/reference/get-contents","checked_at":"2026-09-29"},{"id":"pricing","label":"Exa Search and Contents pricing units","url":"https://exa.ai/docs/admin/pricing","checked_at":"2026-09-29"},{"id":"billing","label":"Exa account billing and rate-limit errors","url":"https://exa.ai/docs/admin/billing","checked_at":"2026-09-29"}],"checked_at":"2026-10-26","review_due":"2026-11-25","evidence":"documented","url":"https://workingproxysites.info/tools/exa-api","provider_url":null,"review_overdue":false},{"slug":"firecrawl-api","name":"Firecrawl API","category":"scraping-api","provider_slug":null,"publisher":"Firecrawl","publisher_type":"official","website":"https://docs.firecrawl.dev/features/scrape","summary":"Compare Firecrawl Markdown, HTML and JSON extraction, cache settings and credit charges. Choose a request format and check target status before accepting data.","tools":["http-api"],"capabilities":["javascript-rendering","structured-extraction","async-jobs","screenshots","batch-requests"],"outputs":["markdown","html","json","screenshot"],"connection":"http-api","billing_basis":"Credits per returned page, with option charges. An ordinary scrape is 1 credit; schema-guided JSON adds 4. Account plans and anonymous limits are separate. Check detailed billing before enabling extra options.","facts":[{"label":"Known page or whole site","value":"POST /v2/scrape reads one URL. For a site traversal, /v2/crawl starts an asynchronous job. Give crawl an explicit page limit and path scope before starting.","source_ids":["scrape","crawl"]},{"label":"Markdown response","value":"Request formats: [\"markdown\"]. Raw HTTP returns content in data.markdown inside a success/data envelope; SDKs return the data object directly.","source_ids":["scrape"]},{"label":"HTML choices","value":"Use formats: [\"html\"] for cleaned page HTML at data.html. Use formats: [\"rawHtml\"] for unmodified page HTML at data.rawHtml. These formats preserve markup; Markdown is the text-oriented choice.","source_ids":["scrape"]},{"label":"Structured fields","value":"Use a formats object with type: \"json\" and a prompt or JSON Schema for fields from a known page. Raw HTTP returns the extracted object at data.json. A JSON response envelope alone does not request extraction. Agent is a separate choice when source URLs must be discovered.","source_ids":["scrape","extraction"]},{"label":"Freshness","value":"The documented cache default permits data up to two days old. Set maxAge: 0 when the task needs a fresh fetch; this does not guarantee that the target returns the desired page.","source_ids":["scrape"]},{"label":"Accepting the response","value":"An API HTTP 200 or success: true is not sufficient. Inspect data.metadata.statusCode and the requested content: a captured target 403 or 404 can be returned and billed.","source_ids":["scrape","billing"]},{"label":"Credit decision","value":"For an ordinary returned page, Markdown uses the 1-credit base. JSON extraction totals 5 credits before other options. Extra modifiers stack; optional browser sessions have a separate billing basis.","source_ids":["billing","extraction"]},{"label":"No-document exceptions","value":"Ordinary scrapes that return no document generally cost 0 credits. Paid guards, threat scans and other documented options have exceptions; a returned error page is still a document.","source_ids":["billing"]},{"label":"Authentication and capacity","value":"Anonymous Scrape has daily per-IP limits. An account API key uses the team plan and shared request limits. Crawl, Map and batch requests require authentication.","source_ids":["limits"]},{"label":"Rate limits versus target errors","value":"A Firecrawl 429 can mean request-rate or concurrency limits. Inspect the response, respect Retry-After when provided and reduce load; repeating a captured target error is a separate decision.","source_ids":["limits","errors"]}],"setup":["Choose a public URL you are permitted to retrieve and the fields the application actually needs. Use Scrape for a known page; keep discovery or a bounded Crawl separate.","Send an application/json POST to https://api.firecrawl.dev/v2/scrape with url and formats. Start with formats: [\"markdown\"]. Add Authorization: Bearer YOUR_FIRECRAWL_API_KEY in your HTTP client when using an account; keep the populated key out of shared files.","Choose maxAge intentionally. For extracted fields, use the JSON format object shown in the example and supply a prompt or schema. Read data.json; the outer success/data response wrapper is not an extraction result.","Check the API outcome, data.metadata.statusCode and the requested fields before storing the result or retrying. Estimate option charges separately, and bound any later Crawl request."],"limitations":["This record covers the hosted HTTP scraping interface. Self-hosted Firecrawl and local MCP deployment have different dependencies and available services.","JavaScript rendering and returned fields are documented capabilities, not a measured success rate or a guarantee for every target.","Anonymous daily caps differ from the authenticated Free account plan. The reviewed rate-limit page does not publish a numeric keyless allowance.","Cached responses can remain billable. Optional extraction, guards, documents and browser operations can change credit usage; do not assume every failed call is free."],"request_examples":[{"label":"Markdown body — POST /v2/scrape","code":"{\n  \"url\": \"https://example.com\",\n  \"formats\": [\n    \"markdown\"\n  ],\n  \"maxAge\": 0\n}","source_ids":["scrape"]},{"label":"Extract a page title — POST /v2/scrape","code":"{\n  \"url\": \"https://example.com\",\n  \"formats\": [\n    {\n      \"type\": \"json\",\n      \"schema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"title\": {\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"title\"\n        ]\n      }\n    }\n  ]\n}","source_ids":["scrape","extraction"]}],"sources":[{"id":"scrape","label":"Firecrawl Scrape: formats, response status and caching","url":"https://docs.firecrawl.dev/features/scrape","checked_at":"2026-09-28"},{"id":"extraction","label":"Choosing the Firecrawl data extractor","url":"https://docs.firecrawl.dev/developer-guides/usage-guides/choosing-the-data-extractor","checked_at":"2026-09-28"},{"id":"billing","label":"Firecrawl credit billing and failure exceptions","url":"https://docs.firecrawl.dev/billing","checked_at":"2026-09-28"},{"id":"limits","label":"Firecrawl rate limits and keyless availability","url":"https://docs.firecrawl.dev/rate-limits","checked_at":"2026-09-28"},{"id":"crawl","label":"Firecrawl Crawl: scope and asynchronous results","url":"https://docs.firecrawl.dev/features/crawl","checked_at":"2026-09-28"},{"id":"errors","label":"Firecrawl API error handling","url":"https://docs.firecrawl.dev/api-reference/errors","checked_at":"2026-09-28"},{"id":"screenshot-reference","label":"Scrape API screenshot request and response reference","url":"https://docs.firecrawl.dev/api-reference/endpoint/scrape","checked_at":"2026-09-29"},{"id":"batch","label":"Batch scrape jobs, results and retention","url":"https://docs.firecrawl.dev/features/batch-scrape","checked_at":"2026-09-29"}],"checked_at":"2026-10-26","review_due":"2026-11-25","evidence":"documented","url":"https://workingproxysites.info/tools/firecrawl-api","provider_url":null,"review_overdue":false},{"slug":"jina-reader-api","name":"Jina Reader API","category":"scraping-api","provider_slug":null,"publisher":"Jina AI","publisher_type":"official","website":"https://jina.ai/reader/","summary":"Choose Jina Reader’s main-content or full-page Markdown, JSON response wrapper and cache controls. Check URL fragments, selectors and output-token billing.","tools":["http-api"],"capabilities":["javascript-rendering","css-selectors","web-scraping"],"outputs":["markdown","text","html","json"],"connection":"http-api","billing_basis":"Basic anonymous URL reading is rate-limited. Keyed Reader usage draws from the supplied API key’s output-token balance; optional modes can change token usage. Jina documents no token deduction for failed requests. Check the current key quota and rate table.","facts":[{"label":"Known URL first","value":"Prefix a complete URL with https://r.jina.ai/ to read that page, for example https://r.jina.ai/https://example.com. The separately authenticated s.jina.ai search endpoint has its own terms.","source_ids":["reader","repository"]},{"label":"Main content or full page","value":"The default content mode extracts readable page content as Markdown. X-Respond-With: markdown returns full-page Markdown without the readability filter. Use the default for an article body; choose full-page mode when surrounding page text matters.","source_ids":["repository","spec"]},{"label":"JSON wrapper versus fields","value":"Accept: application/json requests a JSON response with page URL, title and content. It does not ask Reader to extract your own JSON Schema fields. X-Respond-With selects the content representation inside the response.","source_ids":["reader","repository","spec"]},{"label":"HTML and text choices","value":"Set X-Respond-With: html for HTML or X-Respond-With: text for plain text. Select the representation your application will process before comparing output size or token usage.","source_ids":["repository","spec"]},{"label":"Freshness","value":"Use X-No-Cache: true or X-Cache-Tolerance: 0 when cached output is unsuitable. Published sources give different cache lifetimes, so do not rely on one universal default TTL.","source_ids":["reader","repository","spec"]},{"label":"Missing dynamic content","value":"For a page that needs browser rendering, explicitly choose X-Engine: browser. X-Wait-For-Selector waits for an expected element; X-Target-Selector limits returned content and X-Remove-Selector removes unwanted elements.","source_ids":["reader","repository","spec"]},{"label":"Hash-based routes","value":"A URL fragment after # is normally kept by the HTTP client. For a route such as https://example.com/#/route, POST the full URL in the request body to https://r.jina.ai/ so Reader receives the fragment.","source_ids":["repository","spec"]},{"label":"Reject or truncate","value":"X-Token-Budget rejects a request when the resulting token cost would exceed the limit. X-Max-Tokens truncates returned content. Choose rejection when completeness matters; use truncation only when partial output is acceptable.","source_ids":["repository","spec"]},{"label":"Authentication and limits","value":"Basic Reader requests can omit credentials. Send Authorization: Bearer YOUR_JINA_API_KEY for the supplied key’s token balance and rate limits. Anonymous limits are tracked by IP; keyed requests use the key’s limits.","source_ids":["reader","spec"]}],"setup":["Choose a known public URL and whether the application needs main-content Markdown, full-page Markdown, HTML or plain text.","Start with the simple GET example. Add Accept: application/json for a machine-readable wrapper; add Authorization: Bearer YOUR_JINA_API_KEY in your private client if using that key’s quota.","Use the POST example for hash-based routes. If content is missing, check the target and cache first, then choose browser rendering or an appropriate wait/target selector.","Inspect the returned URL, content and any error before storing the response. Set a token budget when oversized output should be rejected; do not treat truncated text as a complete page."],"limitations":["This record covers known-URL reading through hosted r.jina.ai. Jina’s search, embeddings, self-hosted Reader and specialized OCR paths have different requirements.","A JSON response wrapper or CSS content selection does not establish arbitrary schema-guided field extraction.","Rendering and selection controls are documented capabilities, not a measured success rate for protected or dynamic pages. A paid key does not guarantee access to a blocked target.","The request examples were checked against documentation and parsed locally; no target-page fetch, paid API request or performance test was run."],"request_examples":[{"label":"Read a known page — curl","code":"curl --fail-with-body 'https://r.jina.ai/https://example.com'","source_ids":["repository"]},{"label":"Fresh full-page Markdown in JSON — curl","code":"curl --fail-with-body 'https://r.jina.ai/https://example.com' \\\n  -H 'Accept: application/json' \\\n  -H 'X-Respond-With: markdown' \\\n  -H 'X-No-Cache: true'","source_ids":["repository","spec"]},{"label":"Preserve a hash route — curl","code":"curl --fail-with-body 'https://r.jina.ai/' \\\n  --data-urlencode 'url=https://example.com/#/route'","source_ids":["repository","spec"]}],"sources":[{"id":"reader","label":"Jina Reader: product options, rates and billing FAQ","url":"https://jina.ai/reader/","checked_at":"2026-09-28"},{"id":"repository","label":"Official Reader guide: formats, selectors and URL fragments","url":"https://github.com/jina-ai/reader","checked_at":"2026-09-28"},{"id":"spec","label":"Live Reader OpenAPI: headers and request schema","url":"https://r.jina.ai/openapi.json","checked_at":"2026-09-28"}],"checked_at":"2026-10-26","review_due":"2026-11-25","evidence":"documented","url":"https://workingproxysites.info/tools/jina-reader-api","provider_url":null,"review_overdue":false},{"slug":"nimble-extract","name":"Nimble Extract API","category":"scraping-api","provider_slug":"nimble","publisher":"Nimble","publisher_type":"official","website":"https://docs.nimbleway.com/nimble-sdk/web-tools/extract/quickstart","summary":"Fetch HTML, Markdown and screenshots with configurable rendering, CSS parsing, browser actions and asynchronous batches.","tools":["python","nodejs","go","curl"],"capabilities":["javascript-rendering","structured-extraction","browser-actions","async-jobs","batch-requests","network-capture","screenshots"],"outputs":["html","json","markdown","png"],"connection":"http-api","billing_basis":"Successful URL extractions; public API pricing lists USD 1 per 1,000 URLs for Extraction Tools.","facts":[{"label":"Formats","value":"The formats array selects HTML, Markdown, Base64 PNG screenshots and response headers.","source_ids":["docs"]},{"label":"Rendering","value":"render defaults to false; true enables JavaScript and auto lets Nimble select the configuration.","source_ids":["docs"]},{"label":"Parsing and actions","value":"CSS parsing schemas, browser actions and network-capture rules are supported.","source_ids":["docs"]},{"label":"Async processing","value":"Async and batch submissions return before processing finishes; poll task or batch progress for completion.","source_ids":["async"]},{"label":"Billing","value":"Extraction Tools are listed at USD 1 per 1,000 URLs, with charges only for successful requests.","source_ids":["pricing"]}],"setup":["Create an API key and authenticate requests to sdk.nimbleway.com with a Bearer token.","POST a URL and selected formats to /v2/extract; enable rendering or a parsing schema as needed.","Use the async or batch endpoints and poll progress for larger jobs."],"limitations":["The Extraction Tools price is distinct from paid Extraction Templates, Search and Web Search Agent products.","Exact concurrency limits and all driver-specific constraints were not verified in this pilot."],"sources":[{"id":"docs","label":"Extract API quickstart and parameters","url":"https://docs.nimbleway.com/nimble-sdk/web-tools/extract/quickstart","checked_at":"2026-09-27"},{"id":"async","label":"Asynchronous and batch extraction","url":"https://docs.nimbleway.com/nimble-sdk/web-tools/extract/features/async","checked_at":"2026-09-27"},{"id":"pricing","label":"Nimble SDK pricing","url":"https://docs.nimbleway.com/nimble-sdk/admin/pricing","checked_at":"2026-09-27"},{"id":"formats","label":"Nimble Extract output formats","url":"https://docs.nimbleway.com/nimble-sdk/web-tools/extract/features/formats","checked_at":"2026-09-27"}],"checked_at":"2026-10-26","review_due":"2026-11-25","evidence":"documented","url":"https://workingproxysites.info/tools/nimble-extract","provider_url":"https://workingproxysites.info/t/18-nimble-proxies","review_overdue":false},{"slug":"oxylabs-web-scraper-api","name":"Oxylabs Web Scraper API","category":"scraping-api","provider_slug":"oxylabs","publisher":"Oxylabs","publisher_type":"official","website":"https://oxylabs.io/products/scraper-api/web","summary":"Fetch public pages or use dedicated target parsers, with rendered HTML and asynchronous batch delivery.","tools":["python-requests","nodejs","curl"],"capabilities":["javascript-rendering","structured-extraction","async-jobs","batch-requests","country-targeting","screenshots"],"outputs":["html","json","png"],"connection":"http-api","billing_basis":"Product-specific plan and target rates; exact costs and failed-request rules were not verified in this pilot.","facts":[{"label":"Authentication","value":"Use Web Scraper API user credentials (USERNAME and PASSWORD) with HTTP Basic authentication.","source_ids":["quickstart","proxy-endpoint"]},{"label":"Rendering and parsing","value":"render=html enables JavaScript rendering. Dedicated supported targets accept parse=true for structured JSON.","source_ids":["quickstart"]},{"label":"Delivery choices","value":"Realtime keeps the connection open; Push-Pull retrieves jobs asynchronously; Proxy Endpoint offers a proxy interface.","source_ids":["reference"]},{"label":"Batch size","value":"Push-Pull accepts up to 5,000 query or URL values per batch; Realtime and Proxy Endpoint do not support batch.","source_ids":["reference"]},{"label":"Screenshots","value":"render=png returns a Base64-encoded screenshot.","source_ids":["reference"]}],"setup":["Create a Web Scraper API user in the dashboard.","Choose universal plus a URL, or a supported dedicated source and query.","Submit with Basic authentication; choose Realtime or asynchronous Push-Pull for the required delivery model."],"limitations":["Dedicated parsers apply to supported targets, not every arbitrary URL.","Proxy Endpoint accepts fewer additional parameters than the HTTP integrations.","Exact plan pricing and failed-request billing remain unverified."],"sources":[{"id":"quickstart","label":"Web Scraper API product documentation","url":"https://developers.oxylabs.io/products/web-scraper-api","checked_at":"2026-09-27"},{"id":"reference","label":"Official Web Scraper API repository","url":"https://github.com/oxylabs/web-scraper-api","checked_at":"2026-09-27"},{"id":"rendering","label":"JavaScript rendering and browser control","url":"https://developers.oxylabs.io/products/web-scraper-api/features/js-rendering-and-browser-control","checked_at":"2026-09-29"},{"id":"push-pull","label":"Push-Pull jobs, callbacks and batch submission","url":"https://developers.oxylabs.io/products/web-scraper-api/integration-methods/push-pull","checked_at":"2026-09-29"},{"id":"proxy-endpoint","label":"Proxy Endpoint integration method","url":"https://developers.oxylabs.io/products/web-scraper-api/integration-methods/proxy-endpoint","checked_at":"2026-10-26"}],"checked_at":"2026-10-26","review_due":"2026-11-25","evidence":"documented","url":"https://workingproxysites.info/tools/oxylabs-web-scraper-api","provider_url":"https://workingproxysites.info/t/2-oxylabs-proxies","review_overdue":false},{"slug":"scrapeops-proxy-api-aggregator","name":"ScrapeOps Proxy API Aggregator","category":"scraping-api","provider_slug":"scrapeops","publisher":"ScrapeOps","publisher_type":"official","website":"https://scrapeops.io/proxy-aggregator/","summary":"Route scraping requests across upstream services, with rendering, proxy-pool and extraction options.","tools":["curl"],"capabilities":["javascript-rendering","structured-extraction","screenshots"],"outputs":["html","json","markdown","screenshot"],"connection":"http-api","billing_basis":"Monthly API credits determined by target and options; HTTP 200 and 404 responses consume credits.","facts":[{"label":"Billing outcomes","value":"The credit policy counts both HTTP 200 and 404 responses as successful, billable requests.","source_ids":["costs"]},{"label":"Rendering costs","value":"Standard rendering costs 10 credits; residential plus rendering costs 25; render_js_cheap costs 5 using a limited provider set.","source_ids":["costs"]},{"label":"Extraction add-on","value":"llm_extract adds 25 credits on top of base proxy costs.","source_ids":["costs"]},{"label":"Cheaper rendering tradeoff","value":"render_js_cheap is intended for simpler sites and does not provide the full upstream provider pool.","source_ids":["cheap"]},{"label":"Response options","value":"The feature list documents screenshot capture and JSON or Markdown LLM extraction responses.","source_ids":["features"]}],"setup":["Obtain a ScrapeOps API key.","Send the target URL and API key to the aggregator endpoint.","Choose rendering and pool options, then check the domain-specific cost table before increasing volume."],"limitations":["Certain domains and premium configurations use different credit schedules.","Unused credits do not transfer into the next subscription period.","A target 404 can still consume quota."],"sources":[{"id":"costs","label":"Request costs and billable status codes","url":"https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/account/request-costs/","checked_at":"2026-09-27"},{"id":"cheap","label":"Lower-cost rendering constraints","url":"https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/advanced-functionality/render-js-cheap/","checked_at":"2026-09-27"},{"id":"features","label":"Supported request and extraction options","url":"https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/advanced-functionality/functionality-list/","checked_at":"2026-09-27"},{"id":"llm-extract","label":"ScrapeOps LLM extraction options","url":"https://scrapeops.io/docs/web-scraping-proxy-api-aggregator/advanced-functionality/llm-extract/","checked_at":"2026-09-27"}],"checked_at":"2026-10-26","review_due":"2026-11-25","evidence":"documented","url":"https://workingproxysites.info/tools/scrapeops-proxy-api-aggregator","provider_url":"https://workingproxysites.info/t/98-scrapeops-proxies","review_overdue":false},{"slug":"scraperapi","name":"ScraperAPI","category":"scraping-api","provider_slug":"scraperapi","publisher":"ScraperAPI","publisher_type":"official","website":"https://www.scraperapi.com/","summary":"A scraping HTTP API with optional rendering, premium proxy pools and asynchronous requests.","tools":["python-requests","nodejs","curl"],"capabilities":["javascript-rendering","async-jobs","country-targeting","structured-extraction","batch-requests"],"outputs":["html","json"],"connection":"http-api","billing_basis":"API credits determined by target domain and request options.","facts":[{"label":"Rendering","value":"render=true returns HTML after JavaScript execution; wait_for_selector requires rendering.","source_ids":["parameters"]},{"label":"Credit examples","value":"The documented parameter table lists 10 credits for rendering, 25 for premium plus rendering, and 75 for ultra-premium plus rendering.","source_ids":["credits"]},{"label":"Billable outcomes","value":"HTTP 200 and 404 responses are charged, as are client-cancelled requests when the client allows less than 70 seconds.","source_ids":["credits"]},{"label":"Cost inspection","value":"The account/urlcost endpoint estimates request cost and the sa-credit-cost response header reports actual credits.","source_ids":["credits"]},{"label":"Concurrency","value":"Concurrency is plan-dependent; the Async API supports batch requests.","source_ids":["faq"]},{"label":"Structured extraction","value":"autoparse=true and dedicated structured-data endpoints parse supported sites and target types; ordinary URL fetching is not a universal field-extraction contract.","source_ids":["parameters","structured-data"]}],"setup":["Get an API key and select synchronous, asynchronous or proxy access.","Send the target URL and request options with the API key.","Check target-specific cost before a batch and allow the documented timeout before cancelling."],"limitations":["The listed rendering credits are configuration examples; protected domains and special targets can change total cost.","A target 404 can still be billed.","Unused subscription credits do not roll over."],"sources":[{"id":"parameters","label":"Supported request parameters","url":"https://docs.scraperapi.com/control-and-optimization/supported-parameters","checked_at":"2026-09-27"},{"id":"credits","label":"Credits and request costs","url":"https://docs.scraperapi.com/getting-started/quick-start/credits-and-requests-costs","checked_at":"2026-09-27"},{"id":"faq","label":"API, async and concurrency FAQ","url":"https://docs.scraperapi.com/resources/faq/general","checked_at":"2026-09-27"},{"id":"structured-data","label":"ScraperAPI structured-data endpoint overview","url":"https://docs.scraperapi.com/structured-data-endpoints/overview.md","checked_at":"2026-09-27"},{"id":"async","label":"Async API lifecycle and retention","url":"https://docs.scraperapi.com/asynchronous-api/overview","checked_at":"2026-09-29"},{"id":"batch","label":"Async batch submission","url":"https://docs.scraperapi.com/asynchronous-api/batch-requests","checked_at":"2026-09-29"},{"id":"jobs","label":"Async job status and results","url":"https://docs.scraperapi.com/asynchronous-api/job-handling","checked_at":"2026-09-29"},{"id":"callbacks","label":"Async callbacks and request parameters","url":"https://docs.scraperapi.com/asynchronous-api/callbacks-and-api-params","checked_at":"2026-09-29"}],"checked_at":"2026-10-26","review_due":"2026-11-25","evidence":"documented","url":"https://workingproxysites.info/tools/scraperapi","provider_url":"https://workingproxysites.info/t/166-scraperapi-proxies","review_overdue":false},{"slug":"scrapfly-scrape-api","name":"Scrapfly Scrape API","category":"scraping-api","provider_slug":"scrapfly","publisher":"Scrapfly","publisher_type":"official","website":"https://scrapfly.io/products/web-scraping-api","summary":"A scraping API with managed rendering, JavaScript scenarios and configurable anti-blocking options.","tools":["python","nodejs","curl"],"capabilities":["javascript-rendering","browser-actions","structured-extraction","country-targeting","screenshots"],"outputs":["html","json","screenshot"],"connection":"http-api","billing_basis":"API credits per scrape; proxy network, rendering and protection settings affect consumption.","facts":[{"label":"Rendering and actions","value":"render_js enables browser rendering; js_scenario defines page interactions before results return.","source_ids":["product"]},{"label":"Result handling","value":"Examples return scraped content and browser data through the API result rather than exposing a browser connection.","source_ids":["product"]},{"label":"Credit model","value":"A scrape can consume multiple credits depending on browser, proxy and protection configuration.","source_ids":["pricing"]},{"label":"Concurrency examples","value":"Published monthly plans list 5 concurrent requests for Discovery, 20 for Pro, 50 for Startup and 100 for Enterprise.","source_ids":["pricing"]},{"label":"Quota expiry","value":"Unused subscription quota does not roll over to the next subscription period.","source_ids":["pricing"]},{"label":"Integrated extraction","value":"extraction_model, extraction_prompt and extraction_template select documented model, prompt and template extraction approaches within a scrape.","source_ids":["extraction"]}],"setup":["Create a Scrapfly account and API key.","Send a URL and selected options to the Scrape API, or use its official SDK.","Enable render_js and a scenario for interactive pages; size workers to the plan's concurrency."],"limitations":["This listing covers the Scrape API. Scrapfly lists remote browser sessions separately under its Cloud Browser product.","Exact target costs were not verified. The pricing page states that failed requests are not charged (upstream 4xx/5xx and failed scrapes are free)."],"sources":[{"id":"product","label":"Official Web Scraping API examples","url":"https://scrapfly.io/products/web-scraping-api","checked_at":"2026-09-27"},{"id":"pricing","label":"Scrapfly plan limits and credit FAQ","url":"https://scrapfly.io/pricing","checked_at":"2026-09-27"},{"id":"extraction","label":"Scrapfly integrated extraction reference","url":"https://scrapfly.io/docs/scrape-api/extraction","checked_at":"2026-09-27"},{"id":"screenshots","label":"Scrape API screenshots, image loading and downloads","url":"https://scrapfly.io/docs/scrape-api/screenshot","checked_at":"2026-09-29"}],"checked_at":"2026-10-26","review_due":"2026-11-25","evidence":"documented","url":"https://workingproxysites.info/tools/scrapfly-scrape-api","provider_url":"https://workingproxysites.info/t/168-scrapfly-proxies","review_overdue":false},{"slug":"scrapingant-web-scraping-api","name":"ScrapingAnt Web Scraping API","category":"scraping-api","provider_slug":"scrapingant","publisher":"ScrapingAnt","publisher_type":"official","website":"https://scrapingant.com/","summary":"Return page HTML through an API with optional browser rendering, selector waits and proxy location controls.","tools":["python","nodejs","curl"],"capabilities":["javascript-rendering","country-targeting","browser-actions","resource-blocking"],"outputs":["html"],"connection":"http-api","billing_basis":"API credits based on browser use and proxy network.","facts":[{"label":"Rendering and response","value":"The /v2/general endpoint returns HTML. The request reference and product page now agree that browser defaults to true; set browser=false for static pages (1 credit instead of 10). return_page_source=true skips JavaScript rendering while using the browser.","source_ids":["docs","rendering-page"]},{"label":"Timeout","value":"The request reference and product page both document a 60-second default timeout with a 5–60-second range.","source_ids":["docs","rendering-page"]},{"label":"Credit examples","value":"The reviewed credit table lists JavaScript-rendered datacenter requests at 10 credits and rendered residential requests at 125 credits.","source_ids":["credits"]},{"label":"Usage inspection","value":"The Ant-credits-cost response header reports request credit consumption; unused credits expire at the subscription boundary.","source_ids":["credits"]}],"setup":["Obtain the dashboard API key.","Call /v2/general with x-api-key and an encoded target URL.","Choose browser mode, proxy type and selector wait; inspect the credit-cost header."],"limitations":["The credit table now labels every browser/proxy combination: 1, 2, 10, 25, 50 and 125 credits, plus 10 for Google on datacenter.","Asynchronous operation and failed-request billing were not fully verified.","This is an HTTP rendering API, not a CDP browser connection."],"sources":[{"id":"docs","label":"v2 request parameters and response format","url":"https://docs.scrapingant.com/request-response-format","checked_at":"2026-09-27"},{"id":"credits","label":"API credit costs","url":"https://docs.scrapingant.com/credits-cost","checked_at":"2026-09-27"},{"id":"rendering-page","label":"JavaScript rendering product page and differing defaults","url":"https://scrapingant.com/javascript-rendering-web-scraping-api","checked_at":"2026-09-29"}],"checked_at":"2026-10-26","review_due":"2026-11-25","evidence":"documented","url":"https://workingproxysites.info/tools/scrapingant-web-scraping-api","provider_url":"https://workingproxysites.info/t/97-scrapingant-proxies","review_overdue":false},{"slug":"scrapingbee-html-api","name":"ScrapingBee HTML API","category":"scraping-api","provider_slug":"scrapingbee","publisher":"ScrapingBee","publisher_type":"official","website":"https://www.scrapingbee.com/","summary":"Fetch rendered pages, apply CSS extraction rules or run browser scenarios through an HTTP API.","tools":["python-requests","nodejs","curl"],"capabilities":["javascript-rendering","structured-extraction","screenshots","bring-your-own-proxy","browser-actions"],"outputs":["html","json","markdown","text","screenshot"],"connection":"http-api","billing_basis":"Monthly API credits; rendering and proxy tier determine base credits, with AI extraction add-ons.","facts":[{"label":"Rendering default","value":"render_js defaults to true. HTML, page text, Markdown and screenshots are documented output options.","source_ids":["docs"]},{"label":"Request credits","value":"Classic requests cost 1 credit without rendering or 5 with it; premium with rendering costs 25 and stealth with rendering costs 75.","source_ids":["docs"]},{"label":"Extraction and interaction","value":"CSS extract_rules and js_scenario support structured extraction and page interactions.","source_ids":["docs"]},{"label":"Custom proxy","value":"The own_proxy parameter supports a user-supplied proxy provider.","source_ids":["docs"]},{"label":"Automatic cost control","value":"GET-only mode=auto chooses a successful rendering/proxy tier; max_cost caps eligible tiers and all-failed auto attempts cost zero.","source_ids":["docs"]}],"setup":["Obtain an API key and send the encoded target URL to the HTML API.","Set output and extraction options; disable rendering when the required content is present in the server response.","For auto mode, set max_cost and omit manually selected rendering/proxy-tier parameters."],"limitations":["AI extraction adds credits beyond base fetch costs.","Auto mode does not supply page-specific waits or browser scenarios.","The service returns extracted content through HTTP; this record does not claim a remotely controllable CDP browser."],"sources":[{"id":"docs","label":"HTML API parameters, outputs and credit costs","url":"https://www.scrapingbee.com/documentation/","checked_at":"2026-09-27"}],"checked_at":"2026-10-26","review_due":"2026-11-25","evidence":"documented","url":"https://workingproxysites.info/tools/scrapingbee-html-api","provider_url":"https://workingproxysites.info/t/167-scrapingbee-proxies","review_overdue":false},{"slug":"tavily-api","name":"Tavily API","category":"scraping-api","provider_slug":null,"publisher":"Tavily","publisher_type":"official","website":"https://docs.tavily.com/documentation/api-reference/endpoint/search","summary":"Choose direct HTTP Search when the source URL is unknown or Extract when it is known. Compare keyless and account access, JSON-wrapped Markdown, partial failures and billing units.","tools":["http-api"],"capabilities":["web-search","web-scraping"],"outputs":["json","markdown","text"],"connection":"http-api","billing_basis":"Search and Extract offer free, rate-limited keyless direct HTTP access with X-Tavily-Access-Mode: keyless. With an account key, basic Search costs 1 credit/request and advanced costs 2; basic Extract costs 1 credit per 5 successful URL extractions and advanced costs 2 per 5. Failed URL extractions are not charged. Extract usage can report 0 before five successful URL extractions.","facts":[{"label":"Unknown source URL","value":"POST /search with a query. Set search_depth: basic and max_results deliberately; results include source URLs and content snippets. A result snippet is a lead to inspect, not the complete source page.","source_ids":["search"]},{"label":"Known source URL","value":"POST /extract directly with urls (one URL or up to 20). Request format: markdown or text. The JSON response wraps each successful page in results with raw_content. Search is unnecessary when the URL is already known.","source_ids":["extract"]},{"label":"Content choice","value":"Search returns results[].content snippets; request include_raw_content for cleaned and parsed page content when available, without a guarantee of complete target coverage. Extract format: markdown returns Markdown inside results[].raw_content; format: text selects plain text.","source_ids":["search","extract"]},{"label":"Partial result check","value":"An Extract HTTP 200 can include both results and failed_results, or an empty results array if every valid URL fails. Match each returned item to its URL; output order is not guaranteed.","source_ids":["extract"]},{"label":"Search credit unit","value":"Basic Search costs 1 account credit per request and advanced costs 2. auto_parameters may select advanced; set search_depth: basic explicitly when the lower unit matters.","source_ids":["credits","search"]},{"label":"Extract credit unit","value":"With an account key, basic Extract costs 1 credit per 5 successful URL extractions and advanced costs 2 per 5. Failed URL extractions are not charged. With include_usage: true, usage may show 0 before the total reaches five successful extractions.","source_ids":["credits","extract"]},{"label":"Direct HTTP access","value":"POST /search and /extract can use X-Tavily-Access-Mode: keyless without an account or API key, subject to rate limits. Alternatively send Authorization: Bearer YOUR_TAVILY_API_KEY for account limits; if both headers are sent, the key takes precedence. The MCP connection has its own client setup.","source_ids":["keyless","credits"]}],"decision_rows":[{"when":"Source URL unknown","request":"POST /search with a query, basic depth and a small max_results.","check":"Read results[].url and content snippets; choose a source URL, then inspect its page content. A snippet is not the full page.","billing":"Keyless is free and rate-limited. With an account key, basic Search is 1 credit per request.","source_ids":["search","credits","keyless"]},{"when":"Source URL known","request":"POST /extract with urls and format: markdown or text; skip source discovery.","check":"Match results[].url and raw_content to failed_results[].url and error, even after HTTP 200.","billing":"Keyless is free and rate-limited. With an account key, basic Extract is 1 credit per 5 successful URL extractions; usage can show 0 before five.","source_ids":["extract","credits","keyless"]}],"setup":["If you know the source URL, call Extract directly. If you need to discover a URL, call Search and inspect a selected result before extracting its page.","Send a JSON POST to https://api.tavily.com/search or https://api.tavily.com/extract with Content-Type: application/json. For free, rate-limited direct HTTP access send X-Tavily-Access-Mode: keyless. For account limits and credits, send Authorization: Bearer YOUR_TAVILY_API_KEY instead.","Start with basic depth and a small result count or known-URL batch. The examples are JSON request bodies for those paths. Set include_usage: true when you need a returned account-usage field.","On Extract, inspect results and failed_results by URL even after HTTP 200. Read failed_results[].error, and treat usage of 0 before five successful extractions as a reporting detail, not proof of unlimited free account use."],"limitations":["This page covers direct HTTP Search and Extract. The paired MCP page covers client connection and available tools; the same keyless access mode can be used with either interface.","Keyless HTTP requests need the X-Tavily-Access-Mode: keyless header and are rate-limited. Map, Crawl and Research require an account API key.","Search results are Tavily web discovery results, not a positional Google SERP snapshot. This record does not claim that Tavily is a dedicated SERP API.","Extract Markdown is page content in results[].raw_content within a JSON response, not schema-guided field extraction. Protected targets and source accuracy were not tested.","Examples were parsed against the current documented request schema locally. No Tavily account request, target fetch, performance test or observed supplier bill is claimed."],"request_examples":[{"label":"Discover a source — POST /search JSON body","code":"{\n  \"query\": \"official API documentation for a library\",\n  \"search_depth\": \"basic\",\n  \"max_results\": 3,\n  \"include_raw_content\": false,\n  \"auto_parameters\": false,\n  \"include_usage\": true\n}","source_ids":["search","credits","keyless"]},{"label":"Read a known page — POST /extract JSON body","code":"{\n  \"urls\": [\n    \"https://example.com/docs\"\n  ],\n  \"extract_depth\": \"basic\",\n  \"format\": \"markdown\",\n  \"include_usage\": true\n}","source_ids":["extract","credits","keyless"]}],"response_examples":[{"label":"Documented mixed-success Extract response (example shape, not a live result)","code":"{\n  \"results\": [\n    {\n      \"url\": \"https://example.com/article\",\n      \"raw_content\": \"Example extracted article content.\",\n      \"images\": []\n    }\n  ],\n  \"failed_results\": [\n    {\n      \"url\": \"https://example.com/unavailable\",\n      \"error\": \"Failed to retrieve content\"\n    }\n  ],\n  \"response_time\": 0.5,\n  \"request_id\": \"123e4567-e89b-12d3-a456-426614174111\"\n}","interpretation":"Treat results[].raw_content as content only for successful URLs. Match failed_results[].url and error to the input before accepting a batch; HTTP 200 alone does not mean every URL succeeded. The optional usage field appears when requested and can show 0 before five successful extractions.","source_ids":["extract","credits"]}],"sources":[{"id":"search","label":"Tavily Search endpoint, request parameters and response","url":"https://docs.tavily.com/documentation/api-reference/endpoint/search","checked_at":"2026-09-29"},{"id":"extract","label":"Tavily Extract endpoint, Markdown and partial failures","url":"https://docs.tavily.com/documentation/api-reference/endpoint/extract","checked_at":"2026-09-29"},{"id":"credits","label":"Tavily account credits and per-operation cost","url":"https://docs.tavily.com/documentation/api-credits","checked_at":"2026-09-29"},{"id":"keyless","label":"Tavily keyless direct HTTP access and account upgrade","url":"https://docs.tavily.com/documentation/keyless","checked_at":"2026-09-29"}],"checked_at":"2026-10-26","review_due":"2026-11-25","evidence":"documented","url":"https://workingproxysites.info/tools/tavily-api","provider_url":null,"review_overdue":false},{"slug":"thordata-universal-scraping-api","name":"Thordata Universal Scraping API","category":"scraping-api","provider_slug":"thordata","publisher":"Thordata","publisher_type":"official","website":"https://doc.thordata.com/doc/scraping/universal-scraping-api/query-parameters","summary":"An HTTP endpoint for HTML or PNG results with optional JavaScript rendering and resource controls.","tools":["curl"],"capabilities":["javascript-rendering","screenshots","country-targeting","resource-blocking"],"outputs":["html","png"],"connection":"http-api","billing_basis":"Not verified; request multipliers, failed-request billing and plan pricing require further evidence.","facts":[{"label":"Request interface","value":"The official example posts form-encoded fields to universalapi.thordata.com/request with a Bearer token.","source_ids":["docs"]},{"label":"Rendering","value":"js_render=True enables JavaScript rendering for dynamic content.","source_ids":["docs"]},{"label":"Output","value":"The type parameter selects HTML or PNG; HTML is the documented default.","source_ids":["docs"]},{"label":"Resource controls","value":"block_resources restricts fetched resources; country selects the scraping proxy location.","source_ids":["docs"]}],"setup":["Obtain a Universal Scraping API token.","Send a form-encoded POST with the target URL and Bearer authentication.","Choose HTML or PNG output and enable JavaScript only when the target requires it."],"limitations":["Pricing, failed-request billing, concurrency and asynchronous delivery were not verified.","The documented country parameter defaults to no proxy; confirm the selected request configuration."],"sources":[{"id":"docs","label":"Universal Scraping API query parameters","url":"https://doc.thordata.com/doc/scraping/universal-scraping-api/query-parameters","checked_at":"2026-09-27"}],"checked_at":"2026-10-26","review_due":"2026-11-25","evidence":"documented","url":"https://workingproxysites.info/tools/thordata-universal-scraping-api","provider_url":"https://workingproxysites.info/t/60-thordata-proxies","review_overdue":false},{"slug":"zyte-api","name":"Zyte API","category":"scraping-api","provider_slug":"zyte","publisher":"Zyte","publisher_type":"official","website":"https://www.zyte.com/zyte-api/","summary":"Choose HTTP response bodies, rendered HTML, screenshots or supported structured extraction in one API.","tools":["python-requests","scrapy","curl"],"capabilities":["javascript-rendering","structured-extraction","screenshots","country-targeting"],"outputs":["html","json","screenshot"],"connection":"http-api","billing_basis":"Successful responses, priced by target and HTTP/browser tier, with feature add-ons.","facts":[{"label":"HTTP output","value":"httpResponseBody=true returns the response body Base64-encoded; decode it before parsing.","source_ids":["http"]},{"label":"Browser output","value":"Browser requests return rendered HTML, screenshots or both, and support browser actions and network capture.","source_ids":["browser"]},{"label":"Structured extraction","value":"The API supports dedicated extraction types including articles, products, job postings and SERPs.","source_ids":["reference"]},{"label":"Billing","value":"Unsuccessful and rate-limited responses are free; browser actions, screenshots and extraction can add costs.","source_ids":["pricing"]},{"label":"Request model","value":"The /v1/extract endpoint blocks until its single-URL result is ready.","source_ids":["reference"]}],"setup":["Authenticate to /v1/extract with the Zyte API key as the Basic-auth username and an empty password.","Send the target URL and select httpResponseBody, browserHtml or a supported extraction field.","Decode HTTP body output where needed and account for chosen extraction or browser add-ons."],"limitations":["This listing covers the HTTP extraction API; Zyte's live CDP browser has separate session and billing rules.","Initial browser requests do not support arbitrary HTTP methods, bodies or custom headers beyond Referer.","Target tier assignments can change; use the provider's cost estimator for a workload."],"sources":[{"id":"http","label":"HTTP request and response-body documentation","url":"https://docs.zyte.com/zyte-api/usage/http.html","checked_at":"2026-09-27"},{"id":"browser","label":"Browser-rendered requests","url":"https://docs.zyte.com/zyte-api/usage/browser.html","checked_at":"2026-09-27"},{"id":"reference","label":"Extraction API reference","url":"https://docs.zyte.com/zyte-api/usage/reference.html","checked_at":"2026-09-27"},{"id":"pricing","label":"Zyte API pricing rules","url":"https://docs.zyte.com/zyte-api/pricing.html","checked_at":"2026-09-27"}],"checked_at":"2026-10-26","review_due":"2026-11-25","evidence":"documented","url":"https://workingproxysites.info/tools/zyte-api","provider_url":"https://workingproxysites.info/t/165-zyte-proxies","review_overdue":false}]}