Skip to content
Trigora
Start building →

HTTP API

Base URL:

  • Cloud: https://api.trigora.dev
  • Local: http://localhost:3477 while trigora dev is running

Cloud requests send Authorization: Bearer <TRIGORA_TOKEN>. Optional X-Trigora-Project-Id selects a project. If you omit it, the workspace default project is used.

Local trigora dev starts with a default project and does not require a bearer token. Projects created through POST /v1/projects are persisted in the local SQLite state.

Local trigora dev implements the developer runtime subset of /v1. whoami, trigger management and firing, billing, and usage remain Cloud-only. trigora dev does not serve GET /v1/whoami.

The local deploy API can store and version Program artifacts. Deployed artifacts with no effect bundle can run directly. trigora dev does not execute uploaded Cloud effect bundles; effectful local Programs should be discovered from project source and run through the normal local development path.

MethodPathPurpose
GET/v1/whoamiToken’s workspace
GET, POST/v1/projectsList or create projects
POST/v1/programs/deployUpload a compiled Program
GET/v1/programsList Programs
GET/v1/programs/:idOne Program
GET/v1/programs/:id/versionsVersions
GET/v1/programs/:id/triggersTriggers for one Program
PUT/v1/projects/:projectId/triggersReplace the project’s trigger list
POST/v1/executionsStart. Body { programId, input? }
GET/v1/executionsList
GET/v1/executions/:idInspect
POST/v1/executions/:id/eventsBody { name, payload? }
POST/v1/executions/:id/cancelCancel
GET/v1/executions/:id/result{ status, result?, error? }

List routes accept limit and cursor.

Webhook ingress is a separate host, with no workspace token:

MethodPathPurpose
POSThttps://hooks.trigora.dev/:publicIdStart the Program for that webhook trigger. Body is the Program input. 202 returns { executionId }.

See Triggers.

Workspace, billing, and usage routes exist under /v1/workspaces/*, /v1/billing/*, and /v1/usage. The CLI does not wrap every billing call. Metering is described in Usage & billing.

Errors are JSON { "error": { "code", "message" } }. See Errors.