API Reference

This page documents the most commonly used endpoints. For the full API documentation, see the Swagger UI. All API endpoints require a project-scoped Bearer token, which you can create from your project settings. Pass it via the Authorization header.

POST /runs

Create a new run. Send a JSON body with metadata fields.

curl https://pixel-eagle.com/runs \
  --json '{"gitref": "abc123", "branch": "main"}' \
  --oauth2-bearer $token

POST /runs/:run_id

Upload a screenshot to a run. Use multipart form data with data (the image file) and screenshot (the name).

curl https://pixel-eagle.com/runs/$run_id \
  -F 'data=@file.png' \
  -F 'screenshot=home-page' \
  --oauth2-bearer $token

POST /runs/:run_id_a/compare/:run_id_b

Trigger a comparison between two runs. Screenshots are matched by name.

curl https://pixel-eagle.com/runs/$run_id_a/compare/$run_id_b \
  -X POST --oauth2-bearer $token

GET /runs/:run_id_a/compare/:run_id_b

Retrieve comparison results. Poll this endpoint until all screenshot comparisons are complete.

POST /runs/:run_id/compare/auto

Automatically find a matching run to compare against based on metadata filters. See Auto Comparison for details.

curl https://pixel-eagle.com/runs/$run_id/compare/auto \
  --json '{"branch": "main"}' \
  --oauth2-bearer $token

POST /runs/:run_id/hashes

Send screenshot hashes before uploading. If the server already has the image, the upload can be skipped - saving bandwidth in CI pipelines where screenshots rarely change.