API Reference
Hyphen is API-first. Every capability — workflow creation, execution, agent orchestration, approvals, OAuth configuration — is an HTTP endpoint.
Base URL
http://localhost:3009
Replace with your deployed instance URL in production.
Authentication
All requests require the X-Org-Id header for multi-tenant isolation:
curl -H "X-Org-Id: your-org-id" http://localhost:3009/workflows
Every workflow, run, action, table, and credential is scoped to the organization specified in this header.
OpenAPI Specification
The full interactive API spec is available here:
- Hyphen API (OpenAPI 3.0) — Every endpoint, request/response schema, and parameter documented
Endpoints at a Glance
Health & Discovery
/healthVerify the API is running.
/builtin-actionsList pre-registered OAuth business tools (Gmail, Slack, Outlook).
Organization Configuration
/org-configStore or update an encrypted configuration key (API keys, connection strings, secrets).
/org-configList all configuration keys (values masked).
Actions
/actionsRegister a custom action (HTTP, LLM, DB, matcher, or custom-table).
/actionsList all registered actions.
/actions/:idGet action details.
/actions/:idUpdate an action.
Workflows
/workflowsCreate a workflow definition.
/workflowsList all workflows.
/workflows/:idGet workflow details.
/workflows/:idUpdate a workflow.
/workflows/:idDelete a workflow.
Execution
/workflows/:id/executeExecute a workflow with an input payload. Returns a run ID.
/runs/:runId/statusGet current run status, context, and step outputs.
Approvals
/approvals/:runId/:stepIndexSubmit an approval decision for a paused workflow.
/approvals/:runIdList pending approvals for a run.
Standalone Agents
:::api POST /agents/execute
Execute an AI agent outside of a workflow. Supports sync and async modes (?async=true).
:::
:::api GET /agents/:id/status
Get agent status. Add ?include_trace=true for reasoning trace.
:::
/agents/:id/traceGet the full reasoning trace (audit trail) — every thought, action, and observation.
/agents/:id/resumeResume a paused agent with human input.
/agents/:idCancel a running agent.
:::api GET /agents
List agent runs. Filter by ?status=paused, ?status=running, etc.
:::
Custom Tables
/custom-tablesCreate a new table with typed fields.
/custom-tables/:name/insertInsert a record.
/custom-tables/:name/bulk-insertInsert multiple records.
/custom-tables/:name/updateUpdate records matching criteria.
/custom-tables/:nameView all data in a table.
/custom-tables/:name/auditView the audit log for a table.
External Forms
/external-formsCreate an external-facing form for data collection.
/external-forms/:id/submitSubmit a form response.
/external-forms/:id/submissionsGet all submissions.
AI Workflow Generation
/ai/generate-workflowGenerate a workflow from a natural language description.
/ai/generate-workflow/:id/statusCheck generation status.
/ai/generate-workflow/:idRetrieve the generated workflow spec.
/workflows/create-from-aiCreate a workflow from AI-generated output (registers actions and tables too).
OAuth Business Tools
/oauth/providersList available OAuth providers and configuration status.
/oauth/:provider/app-credentialsStore OAuth app credentials (client_id, client_secret).
/oauth/:provider/authorizeGet authorization URL for user consent flow.
/oauth/connectionsList all OAuth connections for the organization.
Error Responses
All endpoints return standard HTTP status codes:
| Status | Meaning |
|---|---|
200 |
Success |
201 |
Created |
400 |
Bad request — invalid parameters or workflow definition |
404 |
Not found — workflow, run, or action doesn't exist |
409 |
Conflict — duplicate action name or table name |
500 |
Server error |
Error responses include a message field:
{ "error": "Workflow not found", "message": "No workflow with id 'wf_xyz' for org 'your-org'" }
Rate Limiting
Rate limits are applied per organization. Monitor usage via the admin metrics endpoint.
For AI agents: Fetch /llms.txt for the complete documentation in structured text optimized for LLM consumption.