Ingest structured test data
Receives structured test data from the Gaffer CLI, the GitHub Action, or the MCP server's upload_test_results function. The payload is stored in R2 and processed asynchronously via a queue consumer.
Returns 202 immediately with an uploadSessionId. Poll the upload-sessions endpoint to check when processing completes.
This endpoint is not idempotent. Each request creates a new upload and, once processed, a new test run. runId is stored as the report's source key and does not deduplicate across requests, so retrying a call that may have already succeeded produces a duplicate run. Poll the upload-sessions endpoint instead of retrying blind.
Rate limited per project across all callers. Exceeding the limit returns 429 with a Retry-After header. X-RateLimit-* headers are set on every response.
Accepts either credential type. A project token (gfr_) is already scoped to one project and ignores projectId; a user API key (gaf_) is not, and must pass projectId.
Request
- Base URL: https://app.gaffer.sh
- URL: https://app.gaffer.sh/api/v1/ingest
- Auth: one of:
- API key in header X-API-Key
- API key in header X-API-Key
- HTTP bearer
Query parameters
Target project. Required when authenticating with a user API key (gaf_); omitted for project tokens, which resolve their own project.
Request body
Response
Payload accepted for async processing
Changes
No recorded changes to this operation across all 1 revision of this API.