briqbriq
REST API

REST reference

Every endpoint under /v1.

The authoritative reference is the OpenAPI document at https://api.briq.run/v1/openapi.json, generated from the same Zod schemas the API validates with. This page is the map.

Stacks

MethodPathNotes
POST/v1/stacksCreate a stack: { name, region }
GET/v1/stacks/:idStack with its briqs
DELETE/v1/stacks/:idDestroy the stack and every briq in it

Briqs

MethodPathNotes
POST/v1/briqsCreate and start. Body is a briq spec, or { recipe, params }. wait: true blocks until ready
GET/v1/briqs?stack=List with state and cost
GET/v1/briqs/:idStatus including costCentsSoFar, stopsAt, endpoints, masked env
POST/v1/briqs/:id/exec{ cmd, timeout_ms, stdin }{ stdout, stderr, exit_code }; SSE variant for streaming
GET/v1/briqs/:id/logs?since=&follow=Log lines; SSE when follow=true
POST/v1/briqs/:id/filesUpload a tarball or a single file
GET/v1/briqs/:id/files?path=Download a single file
POST/v1/briqs/:id/expose{ port, mode } → endpoint URL
POST/v1/briqs/:id/stopStop; keeps disk
POST/v1/briqs/:id/startStart a stopped briq
POST/v1/briqs/:id/extend{ minutes } pushes stopsAt
DELETE/v1/briqs/:idDestroy

Recipes

MethodPathNotes
GET/v1/recipesCatalog with params and outputs
GET/v1/recipes/:nameOne recipe

Keys, quota and audit

MethodPathNotes
GET/v1/quotaRemaining spend and concurrency for this key
GET/v1/auditAudit events for this team
POST/v1/keysMint keys and sub-keys for the current team. Session auth only

Teams

MethodPathNotes
GET/v1/teamsTeams you belong to
POST/v1/teamsCreate a team (Pro)
POST/v1/teams/:id/membersInvite a member (Pro)

Example: run a recipe and wait

curl -X POST https://api.briq.run/v1/briqs \
  -H "Authorization: Bearer $BRIQ_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "recipe": "postgres", "params": { "version": "16" }, "wait": true }'
{
  "id": "bq_7kq2m9x1p4ab",
  "stackId": "st_2m9x1p4abq7k",
  "name": "db",
  "image": "postgres:16",
  "size": "small",
  "state": "running",
  "internalHost": "db.s1.internal",
  "endpoints": [],
  "outputs": { "DATABASE_URL": "postgres://postgres:…@db.s1.internal:5432/app" },
  "createdAt": "2026-09-18T16:41:12Z",
  "startedAt": "2026-09-18T16:41:19Z",
  "stopsAt": "2026-09-18T17:41:12Z",
  "costCentsSoFar": 0.058,
  "error": null
}