Developer HubREST API · v1

API Reference

The eClips API is JSON over HTTPS. Every request is authenticated with a bearer API key; your organization and scopes are attached to the key server-side. The base URL is https://api.eclips.tech.

Authentication

Pass your API key as a bearer token: Authorization: Bearer eck_live_…. Keys are generated from your dashboard and carry their own organization and scopes — there is no separate org header. Keep keys secret; never expose them in client-side code.

bash
curl https://api.eclips.tech/v1/run \
  -H "Authorization: Bearer $ECLIPS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "agent_type": "procurement_specialist",
    "task": "Get 3 vendor quotes for 500 laptops"
  }'

Endpoints

Runs

POST
/v1/run

Trigger an agent run. Returns a run_id immediately; orchestration runs asynchronously.

GET
/v1/runs

List runs for your organization (query: status, limit, offset).

GET
/v1/runs/:id

Fetch a run plus any linked triage item: { run, triage_item }.

GET
/v1/runs/:id/stream

Server-Sent Events — live status updates until the run reaches a terminal state.

Triage

GET
/v1/triage

List pending human-in-the-loop items (query: limit, offset).

POST
/v1/triage/:id/approve

Approve an item and continue the blocked run (body: resolution_note?).

POST
/v1/triage/:id/reject

Reject an item and stop the blocked run (body: reason?).

Webhooks

POST
/v1/webhooks

Register a webhook (body: url, events[]). Returns the signing secret once.

GET
/v1/webhooks

List registered webhook endpoints.

DELETE
/v1/webhooks/:id

Delete a webhook endpoint.

GET
/v1/webhooks/:id/deliveries

List recent delivery attempts for a webhook.

POST
/v1/webhooks/test/:orgId

Send a test payload to your organization's configured webhook URL.

Batches

POST
/v1/batches

Create a batch — run an agent over many rows (body: agent_type, rows[]).

GET
/v1/batches

List batches for your organization (query: limit, offset).

GET
/v1/batches/:id

Fetch a batch with progress counts.

POST
/v1/batches/:id/cancel

Cancel an in-flight batch.

Workflows

GET
/api/workflows

List workflows for your organization.

POST
/api/workflows

Create a workflow (body: name, description?, steps?, edges?).

GET
/api/workflows/:id

Fetch a single workflow definition.

POST
/api/workflows/:id/run

Trigger a workflow with optional input.

GET
/api/workflows/:id/runs

List runs for a workflow.

Health

GET
/v1/health

Service health check. No authentication required.

Example response

A POST /v1/run returns the queued run:

json
{
  "run_id": "a1b2c3d4-0000-4000-8000-000000000000",
  "status": "queued",
  "agent_type": "procurement_specialist",
  "estimated_completion": "async"
}

Webhooks

Register a webhook with POST /v1/webhooks (body: url, events[]). The response includes the signing secret once. eClips POSTs a signed payload on each event — run.completed, run.failed, and run.triage_required. Each request carries an X-eClips-Signature: sha256=… header — verify the HMAC-SHA256 digest with your signing secret before trusting the body.

Errors

Errors use standard HTTP status codes and a typed error field. The official SDK maps each to a catchable error class.

StatusErrorMeaning
400 / 422validation_errorRequest body failed validation (e.g. missing task).
401authentication_errorMissing or invalid API key.
403insufficient_scopeThe key lacks the required scope (e.g. agents:run).
404not_foundRun or triage item does not exist for your org.
429rate_limitedToo many requests. Respect the Retry-After header.