Base URL: https://api.brigs.ai. All requests require a Bearer token.
List endpoints accept limit and offset query parameters. Responses include a total field for calculating pages.
Scans and remediations are asynchronous. POST returns a resource with status: "QUEUED". Poll the resource GET endpoint until status is COMPLETED or FAILED. The CLI's brigs scan watch handles polling automatically.
All request and response bodies are JSON. Set Content-Type: application/json on POST/PATCH requests.
/repos/repos/repos/:id/repos/agent-map/repos/:id/scans{ "scan": { "id": "scn_...", "status": "QUEUED", "repoId": "..." } }/scans/scans/:id/findingsstatus, severity, repoId, controlKey, limit, offset, sortBy, sortOrder{ "findings": [{ "id": "...", "severity": "CRITICAL", "controlKey": "...", "summary": "..." }], "total": 42 }/findings/:id/findings/:id{ "finding": { "id": "...", "status": "RESOLVED", "notes": "..." } }/findings/:id/dismiss/posture/summary{ "score": 72, "passRate": 0.85, "coverage": 0.85, "controlsEvaluated": 13 }/posture/:framework/controls/controls/:key/evidence/finding/:id/evidence/control/:key/evidence/snapshot/findings/:id/remediate/remediation/sessions/:id/api-keys/api-keys/api-keys/:idRate limits apply per API key. CLI commands that call the API count toward your limits. Headers X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset are included in every response.
| Plan | Per Minute | Per Day |
|---|---|---|
| Free | 100 | 1,000 |
| Team | 500 | 10,000 |
| Business | 2,000 | 100,000 |
| Enterprise | 10,000 | Unlimited |
See pricing for plan details and upgrade options.
All errors return a consistent JSON body with error and message fields.
400 Bad Request
{ "error": "Bad Request", "message": "repoId is required" }
401 Unauthorized
{ "error": "Unauthorized", "message": "Invalid API key" }
403 Forbidden
{ "error": "Forbidden", "message": "Insufficient permissions for this resource" }
404 Not Found
{ "error": "Not Found", "message": "Finding not found" }
429 Too Many Requests
{ "error": "Too Many Requests", "message": "Rate limit exceeded.", "retryAfter": 42 }retryAfter seconds, then retry