API Reference

Get your API key
Introduction
v1.2.0
OpenAPI 3.1.0

SafeCart Public API

Programmatic access to SafeCart's product-safety capabilities: check GTINs against EU Safety Gate recall data, search recalls, manage product passports, scan storefronts, create recall campaign drafts, read monitoring status, and receive signed recall/match webhooks.

Authentication. Every request needs a SafeCart API key sent as Authorization: Bearer safecart_live_... (or safecart_test_...). Create and revoke keys in the dashboard (Account Settings → API Keys). The secret is shown once at creation and stored only as a hash — keep it safe.

Portfolio scope. Tenant keys are permanently pinned to one client portfolio. Organization keys may call global Safety Gate routes directly, but tenant-owned routes require X-SafeCart-Tenant-Id. A tenant key rejects a conflicting header instead of switching portfolios.

Envelope. Responses are { "data": ..., "error": null, "meta": ... } on success and { "data": null, "error": { "code", "message" }, "meta": null } on failure. Every response echoes X-Request-Id.

Rate limits. Per-minute limits (by plan) return 429 with Retry-After and X-RateLimit-{Limit,Remaining,Reset}. Metered endpoints (safety check, scan, passport create, recall draft create) also count against a monthly per-plan quota.

Data freshness. Recall data is ingested directly from the official European Commission Safety Gate API (SGIG) on a ~15-minute schedule, searched by modification date so post-publication edits are picked up too. Recall search responses carry meta.last_synced_at — when the ingestion last completed — so freshness is verifiable per call. Full methodology (matching rules, withdrawn handling, current limitations): How matching works.

**Outbound webhooks.** Organization owners and admins configure signed
endpoints in Account Settings → Integrations. SafeCart signs
`<unix_timestamp>.<raw_request_body>` with HMAC-SHA256. See the webhook
operations in this reference for headers, payloads, retries, and examples.
Server:https://safecart.eu/api/v1

Production

Client Libraries

Status

​
Status Operations