Report types
A report type is a predefined report identified by a versioned key ({name}.v{version}).
Call
GET /v2/reporting/reports to fetch the live catalog. It returns the currently active report types and their available columns. See Discover available reports.
Endpoints
Base URL:https://api.goshippo.com
An unknown
run_id returns a 404.
Run states
Reporting API uses uppercase run statuses to match Shippo’s existing reports API lifecycle vocabulary.
There’s no webhook. Poll
GET /v2/reporting/runs/{run_id} until the run reaches a terminal status.
Example flow
1. Create a run. Setinterval.start and interval.end in UTC epoch seconds. end must be greater than start, otherwise you get a 422. A single run can span up to 92 days; a longer window returns 400 invalid-parameter.
cURL
201 Created with status: QUEUED.
Idempotency is opt-in. Send an optional
idempotency_key, any string of 1 to 128 characters, to make retries safe. Reuse the same key with the same request and you get the existing run back as HTTP 200 instead of a duplicate. Reuse the same key with a different request and you get a 409 (idempotency-conflict). Skip the key and every create starts a new run, so there’s no automatic deduplication.cURL
SUCCEEDED, the response includes result.download.url.
The download URL expires at
result.download.expires, expressed as a UTC epoch second. If it expires, fetch the run again for a new URL.GET request to result.download.url. A Shippo Authorization header is not required for this request.
cURL
Errors
Reporting API errors use RFC 7807application/problem+json, except authentication failures, which use 401 application/json with a detail field. Match problem responses on the trailing error-code segment of type, since its host can change.
Common codes:
A run with
status: FAILED comes back as HTTP 200 with status: FAILED, and its error object carries a failure code: invalid_run_request, run_failed, run_processing_failed, run_timeout, or service_unavailable.
Other statuses you may see: 401, 404. See Errors and run failures.
Next steps
- Quickstart: create, poll, and download your first report
- Create and poll a run: retry details and polling patterns
- API reference: full endpoint and schema reference