API Reference
Base URL
text
https://apisvr.tryhyphen.com
Authentication
Hyphen supports three access patterns:
- Gateway mode:
Authorization: Bearer sk-hyp-*(gateway injects tenant context) - Direct engine mode:
X-Org-Id: <org-id> - SDK mode: publishable key
pk_live_*(org resolved server-side, scoped access)
Admin routes are available for platform operators.
Core Engine Endpoints
Health
GET /healthGET /health/readyGET /builtin-actions
Workflows and Runs
POST /workflowsGET /workflowsGET /workflows/:idPUT /workflows/:idDELETE /workflows/:idPOST /workflows/:id/execute(body must be{ "input": { ... } })GET /runs/:runId/status
Approvals and Forms
GET /approvals— List all pending approvals for the orgPOST /approvals/:runId/:stepIdGET /approvals/:runIdPOST /forms/:runId/:stepId/submit(body:{ "data": { ... } })GET /forms/pending
Agents
POST /agents/execute— body accepts optionalprevious_run_idto inject prior run contextGET /agentsGET /agents/:id/status— response includesprevious_run_idwhen setGET /agents/:id/tracePOST /agents/:id/resumeDELETE /agents/:id
Actions
POST /actionsGET /actionsGET /actions/:idPUT /actions/:id
Custom Tables
POST /custom-tablesGET /custom-tables/:nameDELETE /custom-tables/:namePOST /custom-tables/:name/insertPOST /custom-tables/:name/bulk-insertPUT /custom-tables/:name/updateGET /custom-tables/:name/rows— List rows (SDK-compatible)POST /custom-tables/:name/rows— Insert a row (SDK-compatible)PATCH /custom-tables/:name/rows/:rowId— Update a row by ID (SDK-compatible)GET /custom-tables/:name/audit
Documents
POST /documentsPOST /documents/from-urlPOST /documents/bulk-uploadGET /documentsGET /documents/:idGET /documents/:id/downloadPATCH /documents/:idPOST /documents/:id/versionsDELETE /documents/:idGET /documents/:id/auditGET /documents/storage-usage
Webhooks (Registrations)
POST /webhooksGET /webhooksGET /webhooks/:idPATCH /webhooks/:idDELETE /webhooks/:id
OAuth
GET /oauth/providersPOST /oauth/:provider/app-credentialsGET /oauth/:provider/app-credentialsGET /oauth/:provider/authorizeGET /oauth/:provider/callbackGET /oauth/connectionsGET /oauth/connections/:provider/:accountIdDELETE /oauth/connections/:provider/:accountIdPOST /oauth/connections/:provider/:accountId/refresh
AI Generation
POST /ai/generate-workflowGET /ai/generate-workflow/:generation_id/statusGET /ai/generate-workflow/:generation_idPOST /workflows/create-from-aiGET /workflows/create-from-ai/:processIdGET /workflows/generation-status/:processId
Org Config and Schema
POST /org-configGET /org-configPOST /schemasGET /schemas/:idPOST /utils/generate-dag
SDK Endpoints
These endpoints are called by the Ops Console SDK using a publishable key (pk_live_*). They provide scoped access to tasks, tables, documents, and authentication for embedded UI components.
Sessions
POST /sdk/auth/session— Create anonymous sessionGET /sdk/config— Get SDK configuration
Tasks
GET /sdk/tasks— List pending tasksPOST /sdk/tasks/:taskId/decide— Approve or reject a task
Tables
GET /sdk/tables/:name/rows— List table rows (paginated)POST /sdk/tables/:name/rows— Insert a rowPATCH /sdk/tables/:name/rows/:rowId— Update a row (inline editing)
Documents
GET /sdk/documents— List documentsPOST /sdk/documents— Upload a document
Authentication
POST /sdk/auth/otp/request— Send OTP code to registered emailPOST /sdk/auth/otp/verify— Verify OTP and upgrade session
Agents
POST /sdk/agents/execute— Launch an agent (async, returnsagent_run_id). Accepts optionalprevious_run_idfor cross-run contextGET /sdk/agents— List agent runsGET /sdk/agents/:agentId/status— Get agent status with reasoning traceGET /sdk/agents/:agentId/trace— Get full reasoning tracePOST /sdk/agents/:agentId/resume— Resume a paused agent with human inputDELETE /sdk/agents/:agentId— Cancel a running agent
Discovery
GET /sdk/actions— List registered actions (for tool picker)GET /sdk/workflows— List workflows (for tool picker)
Events
GET /sdk/events— Server-sent event stream (real-time updates)
Gateway Endpoints
GET /healthPOST /gateway/signup- Tenant (management token):
/gateway/account,/gateway/orgs,/gateway/orgs/:orgId/keys,/gateway/orgs/:orgId/usage,/gateway/licenses - Licensing:
POST /licensing/validate,GET /licensing/public-key
Error Shape
Typical error body:
json
{
"error": "Validation failed",
"message": "..."
}