Bulk-export historical SafetyCulture inspection data (IDs, records, and media) via the API
domain: developer.safetyculture.com · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Create a service user API token (or user API token) on a Premium/Enterprise SafetyCulture plan and send it as `Authorization: Bearer {api_token}` on every request to https://api.safetyculture.io.
Page through all inspection IDs with `GET /audits/search?field=audit_id&field=modified_at`, repeatedly setting `modified_after` to the `modified_at` of the last record returned until the retrieved count matches `total`.
For each `audit_id`, call `GET /audits/{audit_id}` to retrieve the full inspection payload (`audit_data`, `header_items`, `items`, `media`).
For every item, header item, option, or response containing a `media` element, download the file with `GET /audits/{audit_id}/media/{media_id}` (or the `href` supplied in the response), using the `Content-Type` header to determine file type.
Store the last `modified_at` checkpoint so subsequent syncs only pull inspections changed since the previous run.
Known gotchas
Search results are capped at 1,000 per call and sorted oldest-to-newest by default; keep re-querying with `modified_after` until the amount retrieved equals `total`, even if a single page returns fewer than 1,000 rows.
`field=audit_id` must be included in the search request or the API returns 400 Bad Request.
Media UUIDs never change once assigned, so there's no need to re-download media you've already fetched to check for updates.
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?