1. Browser
ScrapingDuck API Docs
  • Actions
    • Returns example action objects for each available action.
      GET
  • Browser
    • Executes a list of browser actions.
      POST
    • Fetches the full HTML content of a web page.
      GET
    • Extracts the main article content from a web page.
      GET
  • Devices
    • Gets the list of all available device names.
      GET
    • Gets detailed information for a specific device.
      GET
  • Scrape
    • Fetches the raw HTML source of a web page as a direct text/html response.
      GET
    • Fetches the full scraping result including HTML content and metadata (JSON response).
      GET
    • Extracts the main article content from a web page.
      GET
    • Extracts the main article content as Markdown-friendly text.
      GET
    • Captures a screenshot of a web page as a binary image.
      GET
    • Submits a batch of URLs for asynchronous scraping. Returns 202 Accepted with a batch ID immediately. Results are delivered via webhook callback or polled via GET /v1/scrape/batch/{batchId}.
      POST
    • Polls the status of a previously submitted batch scrape job. Results are retrieved from the webapp's persistent storage.
      GET
  • Billing
    • Estimates the credit cost of a browser automation request without executing it.
      POST
    • Estimates the credit cost of a batch scrape without reserving credits.
      GET
  • Search
    • Performs a web search and returns unified results from SearXNG, TinyFish or Brave Search.
      GET
  • Sessions
    • Opens a new interactive browser session. Creating a session is free; each step is billed.
      POST
    • Lists the caller's active sessions.
      GET
    • Gets a session's metadata and current page snapshot.
      GET
    • Closes the caller's session. Idempotent: always returns 204.
      DELETE
    • Executes a single browser action in the caller's live session.
      POST
  • Schemas
    • ActionExecutionMeta
    • BrowserAction
    • BatchItemResult
    • BrowserActionResult
    • BatchScrapeRequest
    • BrowserActionResultActionExecutionResponse
    • BatchScrapeResponse
    • BrowserAutomationRequest
    • BatchWebhookMeta
    • DeviceContextOptionsDto
    • BatchWebhookPayload
    • BillingEstimateResponse
    • DeviceDetailDto
    • ProblemDetails
    • PublicBrowserAutomationRequest
    • ResultData
    • BrowserActionResultSessionStepResponse
    • ValidationProblemDetails
    • ViewSettings
    • SearchResponse
    • SearchResultItem
    • SessionOpenedResponse
    • SessionSummaryDto
    • TrafficSource
ScrapingDuck
  1. Browser

Executes a list of browser actions.

POST
https://api.scrapingduck.com/v1/browser/actions/execute
Last modified:2026-10-04 11:19:18
This endpoint allows for the execution of a sequence of actions in a specified browser environment.
Default Behavior:
A realistic, rotating browser fingerprint will be used.
The browser's locale and timezone will be matched to the proxy's IP address geolocation.
Overrides:
Providing a deviceName uses that specific device profile.
Providing a locale or timezone will disable the automatic matching based on the proxy.
Invariants:
The actions list must contain at least 1 and no more than 50 items.
Actions are executed sequentially.
Any URL provided in an action must be an absolute URL using the http or https scheme.
Example Request:
{
  "actions": [
    { "type": "VisitUrlAction", "url": "https://example.com" },
    { "type": "GetHtmlAction" }
  ]
}
Possible error codes:
400 (validation_error): The request body is invalid. This can happen if the actions array is missing, empty, or if the JSON is malformed.
400 (too_many_actions): The number of actions in the actions array exceeds the server limit of 50.
401 (unauthorized): The API key is missing or invalid.
404 (device_not_found): The specified deviceName does not exist. A list of available devices can be retrieved from the /devices endpoint.
400 (unsupported_action): The type of an action in the actions array is not a recognized action.
400 (invalid_url_scheme): An action contains a URL that is not a valid HTTP or HTTPS URL.
500 (unhandled_error): An unexpected server-side error occurred during the execution of the request.

Request

Authorization
API Key
Add parameter in query
apiKey
Example:
apiKey: ********************
or
Query Params

Body Params
application/json

Examples

Responses

🟢200
application/json
OK
Body

🟠400
🟠401
🟠404
🔴500
Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://api.scrapingduck.com/v1/browser/actions/execute?deviceName=&locale=&timezone=&disableResourceExclusion=&useAdvancedSpoofing=&disableJavaScript=&useResidentialProxy=&apiKey=%3Capi-key%3E' \
--header 'Content-Type: application/json' \
--data '{
    "actions": [
        {
            "type": "VisitUrlAction",
            "url": "https://news.ycombinator.com"
        },
        {
            "type": "VisitRandomLinkAction",
            "viewTime": 5,
            "stayOnDomain": true,
            "goBack": true
        },
        {
            "type": "GetHtmlAction"
        }
    ]
}'
Response Response Example
200 - Success
{
    "executionId": "myApiKey_a1b2c3d4",
    "results": [
        {
            "type": "VisitUrlActionResult",
            "success": true,
            "data": [
                {
                    "name": "StatusCode",
                    "data": 200
                },
                {
                    "name": "ResponseSize",
                    "data": 45678
                },
                {
                    "name": "Headers",
                    "data": {
                        "content-type": "text/html; charset=utf-8",
                        "server": "nginx"
                    }
                },
                {
                    "name": "Cookies",
                    "data": [
                        {
                            "name": "sessionid",
                            "value": "abc123",
                            "domain": ".example.com",
                            "path": "/",
                            "httpOnly": true,
                            "secure": true
                        }
                    ]
                }
            ]
        },
        {
            "type": "GetHtmlActionResult",
            "success": true,
            "data": [
                {
                    "name": "Html",
                    "data": "<!doctype html><html>...</html>"
                },
                {
                    "name": "Title",
                    "data": "Example Page Title"
                },
                {
                    "name": "Url",
                    "data": "https://example.com"
                },
                {
                    "name": "ContentLength",
                    "data": 45678
                }
            ]
        }
    ],
    "meta": {
        "actionsRequested": 2,
        "actionsSucceeded": 2,
        "startedAtUtc": "2025-01-01T12:00:00Z",
        "finishedAtUtc": "2025-01-01T12:00:02Z",
        "durationMs": 2000,
        "responseSizeBytes": 1234,
        "maxActionsAllowed": 50
    }
}
Modified at 2026-10-04 11:19:18
Previous
Returns example action objects for each available action.
Next
Fetches the full HTML content of a web page.
Built with