Skip to main content

Documentation Index

Fetch the complete documentation index at: https://help.decodo.com/llms.txt

Use this file to discover all available pages before exploring further.

Queue up multiple requests and receive the task_id instantly – after the task is completed, you can retrieve the results from your request using said task_id.

Queue a Single Task

Single query or URL endpoint: https://scraper-api.decodo.com/v3/task
Make a POST request to this endpoint with your preferred parameters to receive the task_id for retrieval once the task is done, along with the parameters used.
# update 'TOKEN VALUE' with your authorization token
curl --request 'POST' \
        --url 'https://scraper-api.decodo.com/v3/task' \
        --header 'Accept: application/json' \
        --header 'Authorization: Basic TOKEN VALUE' \
        --header 'Content-Type: application/json' \
        --data '
    {
      "url": "https://ip.decodo.com"
    }
'

Response Example:

{
  "url": "https://ip.decodo.com",
  "page_from": 1,
  "limit": 10,
  "geo": null,
  "device_type": "desktop",
  "headless": null,
  "parse": false,
  "locale": null,
  "domain": "com",
  "output_schema": null,
  "created_at": "2026-03-04 11:51:04",
  "id": "7434928397127555073",
  "status": "pending",
  "content_encoding": "utf-8",
  "updated_at": "2026-03-04 11:51:04",
  "page_count": 1,
  "http_method": "get",
  "cookies": [],
  "force_headers": false,
  "force_cookies": false,
  "headers": [],
  "session_id": null,
  "successful_status_codes": [],
  "follow_redirect": null,
  "payload": null,
  "store_id": null,
  "headers_cookies_policy": false
}

Retrieve result using task_id

Single query or URL endpoint: https://scraper-api.decodo.com/v3/task/{task_id}/results
Make a GET request to this endpoint, replacing {task_id} with the ID received from the previous POST request to retrieve the result.
Results can be retrieved an unlimited number of times within 24 hours of the initial request
# update 'TOKEN VALUE' with your authorization token
curl --request 'GET' \
        --url 'https://scraper-api.decodo.com/v3/task/{task_id}/results' \
        --header 'Accept: application/json' \
        --header 'Authorization: Basic TOKEN VALUE' \

Get task status using task_id

Asynchronous task status can be checked manually:
# update 'TOKEN VALUE' with your authorization token
curl --request 'GET' \
        --url 'https://scraper-api.decodo.com/v3/task/{task_id}' \
        --header 'Accept: application/json' \
        --header 'Authorization: Basic TOKEN VALUE' \
Response will contain request information and task status. If task is in progress status will be set to pending:
{
    "status": "pending",
    "id": "7447868801825135617",
    "created_at": "2026-04-09 04:51:37",
    "updated_at": "2026-04-09 04:51:37",
    "target": "google_ai_mode",
    "query": "best health trackers under $200",
    "page_from": 1,
    "limit": 10,
    "device_type": "desktop",
    "headless": "html",
    "parse": true,
    "domain": "com",
    "page_count": 1,
    "force_headers": false,
    "force_cookies": false,
    "headers_cookies_policy": false
}
When task has been completed successfully status will be changed to done:
{
    "status": "done",
    "id": "7447866391652228097",
    "created_at": "2026-04-09 04:42:02",
    "updated_at": "2026-04-09 04:42:16",
    "target": "google_ai_mode",
    "query": "best health trackers under $200",
    "page_from": 1,
    "limit": 10,
    "device_type": "desktop",
    "headless": "html",
    "parse": true,
    "domain": "com",
    "page_count": 1,
    "force_headers": false,
    "force_cookies": false,
    "headers_cookies_policy": false
}
If task has failed, status will be set to faulted.

Queue Multiple Tasks

Batch query or URL endpoint: https://scraper-api.decodo.com/v3/task/batch
Make a POST request to this endpoint, providing multiple queries or URLs in JSON format.
Batch requests are limited to 1 request per second.
With a single batch, you can submit either multiple queries or URLs, but not both. Also, one batch must have only one target, like google_search shown in the example below.Number of URLs/queries you can submit depends on your subscription rate limit.
# update 'TOKEN VALUE' with your authorization token
curl --request 'POST' \
        --url 'https://scraper-api.decodo.com/v3/task/batch' \
        --header 'Accept: application/json' \
        --header 'Authorization: Basic TOKEN VALUE' \
        --header 'Content-Type: application/json' \
        --data '
    {
      "url": [
        "https://ip.decodo.com",
        "https://ip.decodo.com",
        "https://ip.decodo.com"
    	],
    }
'

Receive task status to your callback_url

This will work with any async endpoint by entering the callback_url as one of the parameters

We will make a POST request to your provided URL with the task_id and parameters used once the task is done. You can use a website like this one to test receiving a response.
Example using a single task endpoint:
# update 'TOKEN VALUE' with your authorization token
curl --request 'POST' \
        --url 'https://scraper-api.decodo.com/v3/task' \
        --header 'Accept: application/json' \
        --header 'Authorization: Basic TOKEN VALUE' \
        --header 'Content-Type: application/json' \
        --data '
    {
      "url": "https://ip.decodo.com",
      "callback_url": "https://your.url"
    }
'
Example of a response you will receive:
{
  "id": "7039164056019693569",
  "status": "done",
  "target": "universal",
  "query": "",
  "url": "https://ip.decodo.com",
  "domain": "com",
  "limit": 10,
  "locale": null,
  "geo": null,
  "device_type": "desktop",
  "page_from": 1,
  "parse": 0,
  "output_schema": null,
  "headless": null,
  "priority": 0,
  "persist": true,
  "content_encoding": "utf-8",
  "created_at": "2023-03-08 09:24:52",
  "updated_at": "2023-03-08 09:24:52"
You can then use the id to retrieve the result of your task using this endpoint:
  • https://scraper-api.decodo.com/v3/task/{task_id}/results
For example, to retrieve the result from the above example, you would send a GET request to:
  • https://scraper-api.decodo.com/v3/task/7039164056019693569/results

Authenticating Callbacks

To verify that a callback request is actually from Scraper API, include a note in the passthrough parameter. The parameter passthrough along with its contents will be present in the payload sent back to your endpoint.
# update 'TOKEN VALUE' with your authorization token
curl --request 'POST' \
        --url 'https://scraper-api.decodo.com/v3/task' \
        --header 'Accept: application/json' \
        --header 'Authorization: Basic TOKEN VALUE' \
        --header 'Content-Type: application/json' \
        --data '
    {
      "target": "amazon_pricing",
      "query": "B0BS1QCFHX",
      "parse": true,
      "callback_url": "https://your.callback.url",
      "passthrough": "your_note"
    }
'

Support

Need help or just want to say hello? Our support is available 24/7.
You can also reach us anytime via email at support@decodo.com.

Feedback

Can’t find what you’re looking for? Request an article!
Have feedback? Share your thoughts on how we can improve.