SE Home
Help
  • Documentation
  • Help centre
SEScrape Engine

Getting started

DocumentationQuickstartAuthenticationPlayground

Extracting data

Selecting valuesTransformsLists & tablesPage dataAI extractionMCP server

Fetching pages

Custom requestsTimeouts & redirectsCachingAutomatic retriesFallback strategies

Browsers & actions

BrowsersActionsRecipesScreenshots & PDFStored files

Getting past blocks

Anti-bot protectionCaptchasProxiesFingerprintsSessions

Workflows

Multi-step requestsVariablesPaginationBatchCrawlingTemplatesSchedules & monitoringAsync jobs & webhooksExport to S3, Sheets, databases & webhooks

Account & billing

CreditsSecretsPlansLimitsLogs & request idsNotificationsAccountAffiliate programmeHelp centre

Reference

POST /scrapeGET /sessions/:idGET /browsersGET /proxies/countriesGET /healthErrors
Documentation

Getting started

DocumentationQuickstartAuthenticationPlayground

Extracting data

Selecting valuesTransformsLists & tablesPage dataAI extractionMCP server

Fetching pages

Custom requestsTimeouts & redirectsCachingAutomatic retriesFallback strategies

Browsers & actions

BrowsersActionsRecipesScreenshots & PDFStored files

Getting past blocks

Anti-bot protectionCaptchasProxiesFingerprintsSessions

Workflows

Multi-step requestsVariablesPaginationBatchCrawlingTemplatesSchedules & monitoringAsync jobs & webhooksExport to S3, Sheets, databases & webhooks

Account & billing

CreditsSecretsPlansLimitsLogs & request idsNotificationsAccountAffiliate programmeHelp centre

Reference

POST /scrapeGET /sessions/:idGET /browsersGET /proxies/countriesGET /healthErrors

Errors

Failed requests return a non-200 status and an error object:

{
  "target_url": "https://example.com",
  "error": {
    "code": "INVALID_SELECTOR",
    "message": "field #0: invalid CSS selector \"a[\": Expected name, found "
  }
}
FieldDescription
error.codeStable machine-readable code, listed below. Branch on this, not on the message
error.messageHuman-readable explanation. May change
error.statusFor HTTP_ERROR only: the status the target site returned
error.blocked_byFor HTTP_ERROR only, when an anti-bot wall answered: cloudflare, datadome, akamai, perimeterx, imperva, or unknown for a bare 403/429. See Anti-bot protection
error.attemptsWhen the target site was reached: requests made before giving up, more than 1 with retries or fallbacks
warningsNext to error, when the API adapted something before failing: the same warnings as a successful response
error.strategyWith error.attempts: the last strategy tried, 0 for the main request. See Fallback strategies

Codes

Scraping

HTTP statuserror.codeCauseWhat to do
400BAD_REQUESTBody isn't a JSON object, Content-Type isn't application/json, target_url or fields is missing or malformed, or the body is over 6 MBRead error.message, fix the body
400INVALID_VARIABLEIn steps, a variable points at nothing, or at an array or object without | jsonCheck the step name and path, and that the step it reads succeeded
400INVALID_URLtarget_url can't be parsed, isn't http(s), or contains credentialsFix the URL
499CANCELLEDYou stopped waiting for the answer (closed the connection): the request was stoppedNothing: send it again when you need it
400NO_SAVED_PROXIES"list": "saved", and no proxies are savedSave them in Developers → Proxies, or send the list
400NOTHING_TO_CONTINUEA step with "continue": true follows a step that failedFix the step before it, or don't continue
422ACTION_FAILEDAn action failed in the browser: its element didn't appear in time. The message names itFix the selector, mark the action optional, or add a fallback
400INVALID_SELECTORA field's selector isn't valid CSS. The message names the fieldFix the selector
403HOST_NOT_ALLOWEDThe page redirected to another domainRequest the final URL directly
404NOT_FOUNDUnknown endpointCheck the path
405METHOD_NOT_ALLOWEDWrong HTTP method (/scrape needs POST)Use POST
502HTTP_ERRORThe target site answered with a non-2xx status, or a redirect without a destinationSee error.status. For 429 or 5xx, set options.retry. With blocked_by, see Anti-bot protection
502NETWORK_ERRORDNS, connection or TLS failure reaching the siteCheck the URL, or set options.retry
502TOO_MANY_REDIRECTSThe site redirected more than max_redirects timesRaise options.max_redirects, or request the final URL
502RESPONSE_TOO_LARGEThe page is over 10 MBTarget a smaller page
503PROXY_UNAVAILABLENo proxy available in the requested country, or proxies aren't configuredTry another country, or a fallback with "proxy": false
503BROWSER_UNAVAILABLEThe browser engine isn't installed, couldn't start, or strict refused a substitutionUse another engine, or drop strict
504TIMEOUTThe site took longer than the timeout (15 s by default)Set options.retry
500UNKNOWNUnexpected server errorRetry; report it if it persists

Account and platform

HTTP statuserror.codeCauseWhat to do
401UNAUTHORIZEDMissing, revoked or invalid API keyCheck the key
402INSUFFICIENT_CREDITSYour balance is empty (demo pages stay free)Add credits
403TERMS_NOT_ACCEPTEDThe account hasn't accepted the terms of serviceAccept them in the dashboard
403BANNEDThe account is suspendedContact us
403SIGN_IN_REQUIREDSigned out, the playground runs on the demo pages only (no proxies, exports or captchas)Sign in
400TARGET_NOT_ALLOWEDThe target is a private or internal addressScrape public sites only
403DOMAIN_BLOCKEDThe site can't be scraped on this platform: government and public administration (their open data and APIs are allowed), banks, insurers, illegal content, or a site whose owner asked us to. Checked on redirects and on every page the browser loads tooSee the acceptable use policy
403ROBOTS_DISALLOWEDThe platform follows robots.txt for every page, and this site's disallows the URLPick a URL the site allows
403PLAN_LIMITA crawl or batch asks for more pages than your plan runs at onceAsk for fewer, or see Plans
504REQUEST_TOO_LONGThe request ran longer than your plan allows and was stoppedSplit it, or see Plans
400UNKNOWN_SECRETA secret the request names doesn't existCreate it
400UNKNOWN_CONFIGA saved config id (or version) that isn't on your accountCheck the id in Developers → AI configs
400UNKNOWN_DESTINATIONAn export destination that doesn't existCheck its name
413PAYLOAD_TOO_LARGEThe request body is over 1 MBSend less, or split it into a batch
429RATE_LIMITEDOver 60 requests a minute on this key (or, in the dashboard, over 300 a minute from your address)Slow down
429TOO_MANY_CONCURRENT_REQUESTSFree plan: a request is already runningWait for it, or see Plans
429QUEUE_FULLYour plan's waiting line is fullSlow down
503QUEUE_TIMEOUTThe request waited 2 minutes for a slot: nothing ran, nothing billedRetry, or send an async job
502ENGINE_UNAVAILABLEThe scraping service couldn't run the requestRetry in a moment
422TEMPLATE_NOT_LEARNEDThe AI couldn't write fields that work on every check of a templateChange the prompt or the page
503TEMPLATE_LEARNINGThe template is still learning on another requestRetry in a moment

A selector that matches nothing is not an error: you get 200 and that value is null (or [] with "multiple": true).

On this page

  • Codes
  • Scraping
  • Account and platform