Create up to 100 jobs
POST
/v1/scraper/jobs/bulk
const url = 'http://localhost:8080/v1/scraper/jobs/bulk';const options = { method: 'POST', headers: {'x-api-key': '<x-api-key>', 'Content-Type': 'application/json'}, body: '{"jobs":[{"url":"https://example.com","priority":1,"webhookUrl":"https://example.com","timeoutMs":1,"escalation":[{"engine":"http","attempts":1,"timeoutMs":1}],"screenshot":{"format":"png","quality":1,"fullPage":true,"loadResources":"images"}}]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url http://localhost:8080/v1/scraper/jobs/bulk \ --header 'Content-Type: application/json' \ --header 'x-api-key: <x-api-key>' \ --data '{ "jobs": [ { "url": "https://example.com", "priority": 1, "webhookUrl": "https://example.com", "timeoutMs": 1, "escalation": [ { "engine": "http", "attempts": 1, "timeoutMs": 1 } ], "screenshot": { "format": "png", "quality": 1, "fullPage": true, "loadResources": "images" } } ] }'Partial-success : un item invalide (URL SSRF, schéma KO) part dans failed[], les autres sont créés. Un body invalide globalement (cap dépassé, array vide) renvoie 422. Codes: 201-created (tous OK), 207-partial_success, 422-invalid_bulk_body. Idempotent via Idempotency-Key.
Authorizations
Section intitulée « Authorizations »Request Body required
Section intitulée « Request Body required » Media type application/json
object
jobs
required
Array<object>
object
url
required
string format: uri
priority
integer
webhookUrl
string | null format: uri
timeoutMs
integer
escalation
Array<object>
object
engine
required
string
attempts
required
integer
timeoutMs
required
integer
Responses
Section intitulée « Responses »Tous les jobs créés.
Media type application/json
object
status
required
string
code
required
string
data
required
object
processed
required
boolean
summary
required
object
total
required
integer
created
integer
failed
integer
created
Array<object>
object
id
required
string
url
required
string
status
required
string
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
failed
Array<object>
object
index
required
integer
url
required
string | null
reason
required
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": { "processed": true, "created": [ { "status": "queued" } ] }}Création partielle (certains items en failed[]).
Media type application/json
object
status
required
string
code
required
string
data
required
object
processed
required
boolean
summary
required
object
total
required
integer
created
integer
failed
integer
created
Array<object>
object
id
required
string
url
required
string
status
required
string
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
failed
Array<object>
object
index
required
integer
url
required
string | null
reason
required
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": { "processed": true, "created": [ { "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
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
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
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
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
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"}