Base URL & versioning
All endpoints use the /v1/ prefix. Example: POST https://api.hardalion.com/v1/agents/execute.
Authentication
Send Authorization: Bearer hdl_live_… or hdl_test_…. Keys are scoped; missing scope returns insufficient_scope.
Errors
Errors use a Stripe-style object: error.code, error.message, optional error.param, and error.doc_url pointing at stable anchor IDs on this site.
Agents API
POST /v1/agents/execute — sync or streamed agent runs with tool calling. See the dashboard code samples for TypeScript.
Tools API
POST /v1/tools/… — registered tools are invoked by path. See your dashboard samples and OpenAPI for the current tool catalog and payloads.
MFA API
Passkey registration and authentication under /v1/mfa/passkey/…. Behavioral endpoints return 501 until enabled. Manage credentials with GET/DELETE /v1/mfa/credentials/:id.
Triggers API
/v1/triggers — create cron/signal triggers with webhook actions; pause, resume, fire, and fetch logs per trigger.
SDKs
NPM packages: @hardalion/sdk (unified), @hardalion/agents, @hardalion/tools, @hardalion/mfa, @hardalion/triggers, and @hardalion/sdk-core. Paths default to /v1/….
import { Hardalion } from '@hardalion/sdk'
const client = new Hardalion({ apiKey: process.env.HARDALION_API_KEY! })
await client.agents.execute({ ... })