Aller au contenu

Lancer l'extraction d'une page web

POST
/v1/scraper/jobs
curl --request POST \
--url https://api.extentapi.example/v1/scraper/jobs \
--header 'Content-Type: application/json' \
--header 'x-api-key: <x-api-key>' \
--data '{ "url": "https://example.com", "priority": 1, "webhookUrl": "https://example.com", "webhookSecret": "example", "escalation": [ { "engine": "fast", "attempts": 1, "timeoutMs": 1 } ], "screenshot": { "format": "png", "quality": 1, "fullPage": true, "loadResources": "images", "declutter": true }, "forceRefresh": true }'

Récupérez le contenu d’une URL, même protégée. La requête est traitée de façon asynchrone (201) — récupérez le résultat par polling ou webhook. Idempotent via le header Idempotency-Key (24 h).

Cache de résultat : si la même URL a été crawlée avec succès récemment (< 6 h par défaut), le résultat est servi immédiatement — réponse 200 cache_hit (job déjà done, cache.hit=true) au lieu de re-crawler, facturée au tarif réduit. Passez forceRefresh: true pour forcer un nouveau crawl. Les requêtes avec screenshot ne sont jamais servies depuis le cache.

Media type application/json
object
url
required
string format: uri
priority
integer
<= 10
webhookUrl
string | null format: uri
webhookSecret
string
>= 16 characters <= 200 characters
escalation
Array<object>
>= 1 items <= 8 items
object
engine
required
string
Allowed values: fast stealth resilient fallback
attempts
required
integer
>= 1 <= 5
timeoutMs
required
integer
>= 1000 <= 180000
screenshot
Any of:
boolean
forceRefresh
boolean

Cache hit — résultat d’un crawl récent réutilisé.

Media type application/json
object
status
required
string
Allowed value: success
code
required
string
data
required
object
id
required
string
url
required
string
status
required
string
Allowed values: queued claimed done failed dead
priority
required
integer
attempts
required
integer
createdAt
required
string format: date-time
finishedAt
required
string | null format: date-time
domainId
required
string
tenantId
required
string
webhookSecret
string
cache
object
hit
required
boolean
key
string
ageSeconds
integer
expiresAt
string format: date-time
timing
object
totalMs
required
integer
dbMs
integer
externalMs
integer
deprecation
object
sunset
required
string format: date-time
successor
string
note
string
Example
{
"status": "success",
"data": {
"status": "queued"
}
}

Job créé et enqueué.

Media type application/json
object
status
required
string
Allowed value: success
code
required
string
data
required
object
id
required
string
url
required
string
status
required
string
Allowed values: queued claimed done failed dead
priority
required
integer
attempts
required
integer
createdAt
required
string format: date-time
finishedAt
required
string | null format: date-time
domainId
required
string
tenantId
required
string
webhookSecret
string
cache
object
hit
required
boolean
key
string
ageSeconds
integer
expiresAt
string format: date-time
timing
object
totalMs
required
integer
dbMs
integer
externalMs
integer
deprecation
object
sunset
required
string format: date-time
successor
string
note
string
Example
{
"status": "success",
"data": {
"status": "queued"
}
}

Requête mal formée (validation_error, invalid_idempotency_key, invalid_sort_field, invalid_filter).

Media type application/json
object
status
required
string
Allowed value: error
code
required
string
error
required
object
message
string
requestId
required
string
details
Array<object>
object
path
string
code
string
message
string
key
additional properties
Example
{
"status": "error"
}

Authentification manquante ou invalide.

Media type application/json
object
status
required
string
Allowed value: error
code
required
string
error
required
object
message
string
requestId
required
string
details
Array<object>
object
path
string
code
string
message
string
key
additional properties
Example
{
"status": "error"
}

Scope insuffisant (forbidden, no_active_plan, service_disabled_on_plan).

Media type application/json
object
status
required
string
Allowed value: error
code
required
string
error
required
object
message
string
requestId
required
string
details
Array<object>
object
path
string
code
string
message
string
key
additional properties
Example
{
"status": "error"
}

Validation métier KO (unsafe_url, invalid_bulk_body).

Media type application/json
object
status
required
string
Allowed value: error
code
required
string
error
required
object
message
string
requestId
required
string
details
Array<object>
object
path
string
code
string
message
string
key
additional properties
Example
{
"status": "error"
}

Rate-limit dépassé. Header Retry-After retourné.

Media type application/json
object
status
required
string
Allowed value: error
code
required
string
error
required
object
message
string
requestId
required
string
details
Array<object>
object
path
string
code
string
message
string
key
additional properties
Example
{
"status": "error"
}