Error Codes

DataBlue uses standard HTTP status codes. API-level errors return FastAPI's standard detail field. Scrape and job result payloads may also include success, error, and error_code fields when the request itself succeeds but the scrape job fails.

Code Name Description
400 Bad Request Invalid request semantics, malformed IDs, unsupported options, or business-rule validation failures.
401 Unauthorized Missing, invalid, or expired authentication token. Re-authenticate or generate a new API key.
403 Forbidden Authenticated but blocked by permissions, account state, plan access, or email verification. Unverified accounts receive the X-Email-Verification-Required: true response header.
404 Not Found The requested resource (job ID, monitor, schedule) does not exist.
429 Rate Limited You exceeded a rate, operation, or credit limit. Retry timing is sent in the Retry-After response header when available.
422 Validation Error Request body or query parameters failed schema validation. The detail field contains per-field validation errors.
500 Internal Error Server-side error. This may indicate a bug or infrastructure issue. Retry with exponential backoff.
503 Service Unavailable Endpoint is temporarily disabled or under maintenance. Data APIs may return this if a scraper is being updated.

Error Response Format

// 400 Bad Request
{
  "detail": "URL must start with http:// or https://"
}

// 401 Unauthorized
{
  "detail": "Could not validate credentials"
}

// 403 Email verification required
// Header: X-Email-Verification-Required: true
{
  "detail": "Email verification required. Verify your email before using DataBlue APIs."
}

// 422 Validation Error
{
  "detail": [
    {
      "type": "missing",
      "loc": ["body", "url"],
      "msg": "Field required",
      "input": {}
    }
  ]
}

// 429 Rate Limited
// Header: Retry-After: 60
{
  "detail": "Rate limit exceeded. Try again in a minute."
}

// Scrape job failure payload
{
  "success": false,
  "error": "Request timed out",
  "error_code": "TIMEOUT",
  "job_id": "550e8400-e29b-41d4-a716-446655440000"
}

Scrape-specific error codes: Scrape responses may include an error_code field with values like BLOCKED_BY_WAF, CAPTCHA_REQUIRED, TIMEOUT, JS_REQUIRED, or NETWORK_ERROR for more granular error classification.