Skip to main content

Base URL

All API requests should be made to:
https://api.deeprecall.io

Authentication

All endpoints (except /health) require authentication via API key:
X-API-Key: dr_live_your_api_key_here
Learn more about authentication →

API Versioning

The current API version is v1. All endpoints are prefixed with /v1/:
https://api.deeprecall.io/v1/recalls/feed
We maintain backward compatibility within major versions. Breaking changes will result in a new version (v2, v3, etc.).

Available Endpoints

Recalls

GET /v1/recalls/feed

Retrieve recalled products from the past 24 hours (or custom time range)

GET /v1/recalls/sources

List available data sources for your account

System

GET /health

Check API health status (no authentication required)
Custom Endpoints (e.g., /v1/recalls/feed/shein) are available for enterprise clients. Contact us for access.

Request Format

Headers

GET /v1/recalls/feed HTTP/1.1
Host: api.deeprecall.io
X-API-Key: dr_live_your_api_key_here
Accept: application/json

Query Parameters

Most endpoints accept query parameters for filtering and pagination:
https://api.deeprecall.io/v1/recalls/feed?
  data_sources=us_cpsc,uk_opss&
  hours_ago=24&
  limit=50&
  cursor=eyJpZCI6MTIzfQ==

Response Format

All successful responses follow this structure:
{
  "success": true,
  "data": [...],
  "pagination": {
    "total_count": 1250,
    "returned_count": 50,
    "limit": 50,
    "has_more": true,
    "next_cursor": "eyJpZCI6MTA5MjI2fQ=="
  },
  "meta": {
    "filters_applied": {...},
    "processing_time_ms": 145,
    "timestamp": "2025-12-19T17:30:00.000000+00:00"
  },
  "rate_limit": {
    "limits": {...},
    "remaining_credits": 49500
  },
  "data_sources": {
    "available": ["us_cpsc", "uk_opss"],
    "requested": ["us_cpsc"],
    "filtered": ["us_cpsc"]
  }
}

Response Fields

  • success (boolean) - Whether the request succeeded
  • data (array) - Array of result objects
  • pagination (object) - Pagination metadata
  • meta (object) - Request metadata and processing info
  • rate_limit (object) - Current rate limit status
  • data_sources (object) - Data source authorization info

Error Responses

Errors return appropriate HTTP status codes with detailed error information:
{
  "detail": {
    "error": "unauthorized_data_sources",
    "message": "You don't have access to the requested data sources",
    "details": {
      "requested": ["us_fda"],
      "authorized": ["us_cpsc", "uk_opss"]
    },
    "help": "Use the /recalls/sources endpoint to see your authorized sources..."
  }
}

Common Status Codes

CodeMeaningDescription
200OKRequest successful
400Bad RequestInvalid parameters or request format
401UnauthorizedInvalid or missing API key
403ForbiddenInsufficient permissions for resource
429Too Many RequestsRate limit exceeded
500Internal Server ErrorServer error (contact support)
503Service UnavailableAPI temporarily unavailable
Learn more about error handling →

Pagination

DeepRecall API uses cursor-based pagination for efficient traversal of large datasets:
{
  "pagination": {
    "total_count": 1250,
    "returned_count": 50,
    "limit": 50,
    "has_more": true,
    "next_cursor": "eyJpZCI6MTA5MjI2fQ=="
  }
}
Use the next_cursor value in your next request:
curl "https://api.deeprecall.io/v1/recalls/feed?cursor=eyJpZCI6MTA5MjI2fQ=="
Learn more about pagination →

Rate Limiting

Standard rate limits are enforced per API key:
  • 60 requests per minute
  • 1,000 requests per hour
  • 10,000 requests per day
  • 50,000 requests per month
Contact us for custom quotas:
Learn more about rate limits →

Data Sources

Current coverage:
  • us_cpsc - US Consumer Product Safety Commission
  • safety_gate - EU Safety Gate (RAPEX)
  • uk_opss - UK Office for Product Safety & Standards
  • rappel_conso - France RappelConso (General Products)
  • rappel_conso_food - France RappelConso (Food Products)
Coming soon: Australia (au_accc), Canada (canada_recalls) View all data sources →

Need Help?