API Reference

REST API

Everything in OMG QA is available over a clean REST API: projects, findings, comments, evidence, test runs, and webhooks. Use it from your CI, your backend, or your own tooling. The full machine spec is published as OpenAPI.

Base URL

https://api.omgqa.com/api/v1

Responses are JSON. Errors use RFC 7807 problem details with a clear detail message.

Authentication

Authenticate machine-to-machine calls with an API key as a Bearer token. Create keys under Account → API keys; the raw key (omg_live_…) is shown once. Each key carries scopes and is bound to your organization. By default a key is also scoped to a single project (least privilege) — it can only read and write that project's findings, evidence, comments and test runs, enforced on the server; granting a key the whole workspace is a deliberate, broader choice at creation time.

curl https://api.omgqa.com/api/v1/projects \ -H "Authorization: Bearer omg_live_•••••••••••••"

A key can only be granted scopes its creator holds. Available scopes:

findings:readfindings:create findings:updatefindings:transition projects:readprojects:manage evidence:uploadtestruns:read testruns:writeapikeys:manage
Browser/UI sessions use passwordless login (an emailed one-time code) plus a cookie — API keys are for programmatic access.

Key endpoints

MethodPathDescription
GET/projectsList projects
POST/projectsCreate a project (key 2–8 alphanumerics)
GET/projects/{id}/findingsList findings in a project (paged)
POST/projects/{id}/findingsCreate a finding
GET/findings/{id}Get a finding
GET/findings/search?q=Full-text search findings
POST/findings/{id}/transitionMove a finding through its workflow
POST/findings/{id}/evidenceRegister evidence → returns an upload URL
POST/evidence/{id}/completeConfirm an evidence upload
POST/projects/{id}/test-runsOpen a test run (CI ingestion)
POST/test-runs/{id}/resultsSubmit results — failures become findings
POST/webhooksSubscribe to events (signed deliveries)

Example: file a finding

curl -X POST https://api.omgqa.com/api/v1/projects/$PROJECT_ID/findings \ -H "Authorization: Bearer $OMGQA_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "projectId": "$PROJECT_ID", "projectKey": "CHK", "title": "Checkout button unresponsive on Safari", "type": "Bug", "severity": "High", "priority": "P2", "description": "Clicking Pay fires no network request." }'

Responds 201 Created with the finding (including its key, e.g. CHK-1). Evidence is a two-step flow: register it, PUT the bytes to the returned signed URL, then call /complete.

Full specification

The complete, always-current schema — every endpoint, request, and response — is the OpenAPI document:

Open OpenAPI spec ↗

Building an AI agent instead of a backend? The same operations are exposed over MCP — see the MCP Guide.

OMG QA — Capture Every Finding. Fix Faster.

Documentation · API Reference · MCP Guide · Home