API Reference
The Hoziron HTTP API provides programmatic access to all platform capabilities. URLs are unversioned — the API version is specified via request header.
Base URL
http://127.0.0.1:4200/
In production with TLS:
https://hoziron.company.com/
Authentication
When authentication is enabled, include the API key in the Authorization header:
curl -H "Authorization: Bearer hzn_sk_a1b2c3d4..." https://hoziron.company.com/agents
Without authentication (local development), no header is needed.
Common Response Format
Success
{
"agents": [...]
}
Error
{
"error": {
"category": "ValidationError",
"message": "Agent configuration requires at least one trigger",
"details": {
"missing_field": "triggers"
}
}
}
Error Categories
| Category | HTTP Status | Description |
|---|---|---|
ValidationError | 400 | Invalid input or configuration |
NotFound | 404 | Resource doesn't exist |
InvalidState | 409 | Operation not valid for current state |
Duplicate | 409 | Resource already exists |
MemoryViolation | 403 | Cross-agent memory access denied |
ProviderError | 502 | Upstream LLM provider failure |
InitError | 500 | Platform initialization failure |
Internal | 500 | Unexpected internal error |
Content Type
All request and response bodies use application/json unless noted otherwise.
The /metrics endpoint returns text/plain (Prometheus exposition format).
Endpoint Reference
| Section | Endpoints | Reference |
|---|---|---|
| Health & Status | /health, /status, /metrics | health-status.md |
| Agents | /agents/... | agents.md |
| Workflows | /workflows/..., /runs/... | workflows.md |
| Competencies | /competencies/... | competencies.md |
| Skills | /skills/... | skills.md |
| Channels | /channels/... | channels.md |
| Memory | /agents/{id}/memory/... | memory.md |
| Triggers | /triggers/... | triggers.md |
| Schedules | /agents/{id}/schedules/..., /schedules/... | schedules.md |
| Approvals | /approvals/... | approvals.md |
| Auth | /auth/... | auth.md |
| Security | /security/... | security.md |
| Integrations | /integrations/... | integrations.md |
| Catalog | /catalog/... | catalog.md |
| Webhooks | /webhooks/... | webhooks.md |
| Devices | /devices/... | devices.md |
| Cron | /cron/... | cron.md |
| Usage & Budget | /usage/..., /budget/... | usage-budget.md |
| OpenAI Compatible | /chat/completions | openai-compat.md |
ID Format
All resource IDs are UUIDs (v4):
550e8400-e29b-41d4-a716-446655440000
Invalid IDs return:
{
"error": {
"category": "ValidationError",
"message": "Invalid agent ID: 'not-a-uuid'"
}
}
HTTP Status Codes
| Code | Meaning |
|---|---|
| 200 | Success |
| 201 | Created (POST that creates a resource) |
| 204 | No Content (successful DELETE) |
| 400 | Bad Request (validation error) |
| 401 | Unauthorized (missing/invalid auth) |
| 403 | Forbidden (insufficient role) |
| 404 | Not Found |
| 409 | Conflict (invalid state, duplicate) |
| 500 | Internal Server Error |
| 502 | Bad Gateway (provider error) |