Documentation Index
Fetch the complete documentation index at: https://deepline.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
API Reference
Use HTTP when the job starts outside TypeScript: Python, Airflow, notebooks, backend services, or data warehouse tasks.
Authentication
export DEEPLINE_ORIGIN_URL="https://code.deepline.com"
export DEEPLINE_API_KEY="dl_..."
Send the key as a bearer token:
Authorization: Bearer <DEEPLINE_API_KEY>
Start a workflow run
curl -X POST "$DEEPLINE_ORIGIN_URL/api/v2/plays/run" \
-H "Authorization: Bearer $DEEPLINE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "person-linkedin-to-email",
"input": {
"linkedin_url": "https://www.linkedin.com/in/real-person/",
"first_name": "Jane",
"last_name": "Smith",
"company_name": "Acme",
"domain": "acme.com"
}
}'
Response:
{
"workflowId": "play_run_..."
}
Check run status
curl "$DEEPLINE_ORIGIN_URL/api/v2/plays/run/$WORKFLOW_ID" \
-H "Authorization: Bearer $DEEPLINE_API_KEY"
Terminal statuses:
completed
failed
cancelled
Python caller
import os
import time
import requests
base_url = os.environ.get("DEEPLINE_ORIGIN_URL", "https://code.deepline.com")
api_key = os.environ["DEEPLINE_API_KEY"]
headers = {"Authorization": f"Bearer {api_key}"}
start = requests.post(
f"{base_url}/api/v2/plays/run",
headers=headers,
json={"name": "person-linkedin-to-email", "input": {"domain": "acme.com"}},
)
workflow_id = start.json()["workflowId"]
while True:
status = requests.get(
f"{base_url}/api/v2/plays/run/{workflow_id}",
headers=headers,
).json()
if status.get("status") in {"completed", "failed", "cancelled"}:
print(status)
break
time.sleep(2)
When to use HTTP
| Use HTTP for | Use SDK/CLI for |
|---|
| Airflow jobs | writing custom workflows |
| notebooks | local CSV pilots |
| backend services | Claude Code operation |
| warehouse tasks | workflow authoring and checks |