API Reference

REST API

Everything in OMG IQ is available over a clean REST API: projects, findings, comments, evidence, test runs and webhooks — and the delivery layer too, epics, stories, documents, the roadmap, decisions, deployments and the agent-fleet coordination. Use it from your CI, your backend, or your own tooling. The full machine spec is published as OpenAPI.

Base URL

https://api.omgiq.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.omgiq.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)

Delivery & coordination endpoints

The same REST surface drives the whole backlog and the agent fleet — a selection below (see the OpenAPI spec for the complete, always-current list):

MethodPathDescription
GET · POST/omgpm/epicsList / create epics
GET/omgpm/epics/roadmapThe roadmap with target dates & health
GET · POST/omgpm/storiesList / create (upsert) stories
POST/omgpm/stories/{id}/acceptHuman acceptance → Done
GET · POST/omgpm/documentsPRDs, ADRs and specs
GET · POST/omgpm/modules, /omgpm/contracts, /omgpm/cyclesModule catalog, cross-module contracts, cycles
POST/omgpm/merge-queue/submitSubmit a change to the serialized merge lane
GET/omgpm/merge-queueThe merge queue and its status
POST/omgpm/coordination/workers/registerRegister a fleet worker (role + heartbeat)
POST/omgpm/finding-queue/claim-nextAtomically claim the next finding
POST/omgpm/deploymentsRecord a deployment (what shipped)
GET · POST/decisionsThe human decisions inbox — raise & answer
Building an agent instead? The same operations are governed MCP tools — see the MCP Guide.

Example: file a finding

curl -X POST https://api.omgiq.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 IQ — Capture Every Finding. Fix Faster.

Documentation · API Reference · MCP Guide · Home