Scopes
Scopes restrict which endpoints member-level API keys (sk-epoch-) and organisation-level API keys (ok-epoch-) can call.
▶Scope reference
| Scope | Endpoints |
|---|---|
locations:read |
|
locations:delete |
|
metrics:read |
|
ingestions:read |
|
ingestions:write |
|
parcels:read |
|
parcels:write |
|
tags:read |
|
tags:write |
|
webhooks:read |
|
webhooks:write |
|
notifications:read |
|
notifications:write |
|
artifacts:read |
|
artifacts:write |
|
artifacts:sign |
|
auth:read |
|
imagery:read |
|
assessments:read |
|
assessments:write |
|
parties:read |
|
parties:write |
|
geocode:read |
|
discovery:write |
|
organizations:read |
|
organizations:write |
|
billing:read |
credit_refusal.required and credit_refusal.available on GET /ingestions/:id/summary. Without it, the rest of the marker is still served. |
billing:write |
|
rate_limits:read |
|
artifacts:download | Reserved. Accepted on a key and stored, but no endpoint requires it today. Artifact downloads are authorised by artifacts:read plus artifacts:sign. |
eudr:read | Every GET under /regulations/eudr — the audit-trail record, its versions, plots, suppliers, events, attachments, reports and tasks, plus GET /regulations/eudr/scope, /scope/entries and /species. Includes the TRACES read-through:
|
eudr:write | Every POST, PATCH, PUT and DELETE under /regulations/eudr — creating and editing records, config, data fields, verdict overrides, attachments, suppliers and authorisations, and
|
eudr:verify |
manual filing's TRACES data on the four read-through routes above. See the note below. |
eudr:reference | Only GET /regulations/eudr/scope, GET /regulations/eudr/scope/entries and GET /regulations/eudr/species — HS-code classification, Annex I entries and species reference data. |
Grant only eudr:reference to restrict a key to these three reference endpoints.
They also continue to accept eudr:read. The reference scope does not grant
access to audit trails, DDS records, organisation data or EUDR mutations.
Bulk classification through POST /regulations/eudr/scope/review still requires
eudr:read; it is not included in eudr:reference.
▶Reference-only EUDR key
For an integration that only classifies HS codes or lists Annex I entries and
species, select EUDR reference data (eudr:reference) when creating or
editing the key in Settings → API Keys. Select no other scopes.
When creating a child organisation key through
POST /organizations/children/:id/keys, use this request body:
{
"data": {
"type": "api_key",
"attributes": {
"name": "EUDR reference lookups",
"scopes": ["eudr:reference"]
}
}
}
Authenticate the creation request with a parent organisation key that has
organizations:write. Use the newly returned key for the three reference
endpoints. Other scope-protected endpoints, including GET /auth/me and the
EUDR audit-trail routes, return 403 Insufficient scope with that key.
Existing eudr:read keys continue to work; no key update is required. An empty
scope list grants unrestricted access, so keep ["eudr:reference"] set on a
reference-only key.
▶Why eudr:verify is separate from eudr:read
eudr:verify is separate from eudr:readeudr:read covers data fm-api can tie to your organisation. eudr:verify
covers data it cannot.
POST /regulations/eudr/dds/lookup resolves reference and verification
numbers that may belong to anyone, so it is a TRACES proxy by construction —
a read-scoped key must not reach it by default. The same reasoning applies to
a DDS recorded with mode: "manual": those identifiers came from you, not
from TRACES, so nothing in our data proves your organisation owns them. The
read-through routes serve their stored values to any eudr:read key but
withhold the live TRACES half without eudr:verify.
Grant eudr:verify to keys that check counterparties' statements. Leave it
off keys that only read your own filings.
▶Scope rules
- API keys with no scopes (null or empty) have access to all endpoints. This is the default.
- API keys with scopes set can only access endpoints matching their scopes. All other endpoints return
403 Insufficient scope.
▶Common configurations
| Use case | Scopes | Resource tags |
|---|---|---|
| Read-only access | locations:read, metrics:read, ingestions:read, auth:read | (none) |
| Full access | (none — leave empty) | (none) |
| Supplier key | locations:read, auth:read | region:brazil, supplier:acme |
| Ingestion bot | ingestions:read, ingestions:write | (none) |
| EUDR reference lookups only | eudr:reference | (none) |