Skip to main content

TODO

Set common environment variables first:
export KINETIC_BASE_URL="https://api.kinetic.example.com"
export KINETIC_TOKEN="YOUR_TOKEN"

1) Create a workflow (cURL)

curl -X POST "$KINETIC_BASE_URL/api/workflows" \
  -H "Authorization: Bearer $KINETIC_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Invoice extraction",
    "description": "Parse invoice PDFs for totals",
    "slug": "invoice-extraction",
    "triggerType": "manual",
    "configuration": {
      "prompt": "Open the PDF and extract vendor, total, and due date.",
      "screens": ["website"],
      "timeout": 300,
      "retryAttempts": 2,
      "urlAllowlist": ["https://invoices.example.com"],
      "useGlobalAllowlist": true,
      "payloadSchema": {
        "type": "object",
        "required": ["documentUrl"],
        "properties": { "documentUrl": { "type": "string", "format": "uri" } }
      },
      "payloadExample": { "documentUrl": "https://invoices.example.com/123.pdf" }
    }
  }'
Response (truncated):
{
  "id": "5a1d...",
  "currentVersion": 1,
  "versionStatus": "published",
  "status": "active"
}

2) Execute the workflow (Python)

import os, time, requests

base = os.environ["KINETIC_BASE_URL"]
token = os.environ["KINETIC_TOKEN"]
workflow_id = "YOUR_WORKFLOW_ID"
headers = {"Authorization": f"Bearer {token}"}

# Kick off an execution
resp = requests.post(
    f"{base}/api/workflows/{workflow_id}/execute",
    json={"inputPayload": {"documentUrl": "https://invoices.example.com/123.pdf"}},
    headers=headers,
    timeout=30,
)
resp.raise_for_status()
execution_id = resp.json()["executionId"]
print("Started execution", execution_id)

# Poll status
while True:
    detail = requests.get(f"{base}/api/executions/{execution_id}", headers=headers, timeout=30).json()
    print(detail["status"])
    if detail["status"] in ("completed", "failed"):
        break
    time.sleep(5)
Warnings about payload validation (if any) are returned in warnings from the execute response; they do not block execution.

3) Batch execute from CSV (cURL)

Create inputs.csv:
documentUrl
https://invoices.example.com/123.pdf
https://invoices.example.com/456.pdf
Upload and run:
curl -X POST "$KINETIC_BASE_URL/api/workflows/$WORKFLOW_ID/batch-execute" \
  -H "Authorization: Bearer $KINETIC_TOKEN" \
  -F "[email protected]" \
  -F "maxConcurrency=5"
Response includes all new execution IDs.

4) Fetch execution video (cURL)

curl -L "$KINETIC_BASE_URL/api/executions/$EXECUTION_ID/video?agent=elation" \
  -H "Authorization: Bearer $KINETIC_TOKEN" -o recording.mp4

5) List executions with filters (cURL)

curl "$KINETIC_BASE_URL/api/executions?workflowId=$WORKFLOW_ID&status=completed&limit=20" \
  -H "Authorization: Bearer $KINETIC_TOKEN"