Ingest

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.

post/api/v1/ingest

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

projectIdstring

Target project. Required when authenticating with a user API key (gaf_); omitted for project tokens, which resolve their own project.

Request body

runIdstring uuid required

Local UUID used for deduplication

frameworkstring required

Test framework identifier (e.g. "vitest", "playwright", "jest")

branchstring

Git branch name

commitShastring

Git commit SHA

ciProviderstring

CI provider (e.g. "github-actions")

startedAtstring date-time required

ISO 8601 timestamp when the run started

finishedAtstring date-time required

ISO 8601 timestamp when the run finished

Response

Payload accepted for async processing

uploadSessionIdstring

ID of the upload session. Use the upload-sessions endpoint to poll for completion

Changes

No recorded changes to this operation across all 1 revision of this API.