Syndai Docs

Create a run

POST
/api/v1/external/coding/runs

Start a coding run on a repository or a new project; this starts billable work. external_request_id is the idempotency key: re-sending a key you already used starts nothing and returns 409 with a Location header naming the existing run. Run phases are open-ended, so poll GET /runs/{id} or stream its events rather than assuming an order. Requires the coding:runs:create scope.

Authorization

CustomerApiKey
headerAuthorizationBearer <API Key>

Customer API key sent as a bearer token

Query Parameters

customer_id?|null

Request Body

application/json
  1. body
accounts?boolean|null
backlog_task_id?|null
base_branch?string|null
coding_repository_id?|null
economy?boolean
Defaultfalse
environment_id?|null
external_request_id*string
image_refs?array<>
Default[]
local_pickup?|null
metadata?
new_repository?|null
parent_coding_run_id?|null
policy_config?
prompt*string
reference_product?|null
requested_budget_usd?number|null
title?string|null

Response Body

Document created, URL follows

application/json
  1. response
created*boolean
project*
run*
Example Request
curl -X POST 'https://api.syndai.ai/api/v1/external/coding/runs' \  -H 'Content-Type: application/json' \  -d '{  "coding_repository_id": "8a1d4e2f-5b6c-4d7e-8f9a-0b1c2d3e4f50",  "external_request_id": "ticket-4812",  "prompt": "Add a dark mode toggle to the header and remember the choice.",  "title": "Add a dark mode toggle to the header"}'
Example Response
{  "created": true,  "project": {    "created_at": "2026-10-27T09:00:00Z",    "default_branch": "main",    "id": "c2e5f8a1-3b4d-4e6f-8a9b-1c2d3e4f5a6b",    "large_repo_detected": false,    "repo_name": "storefront",    "repo_owner": "acme",    "repo_url": "https://github.com/acme/storefront",    "updated_at": "2026-10-27T09:00:00Z"  },  "run": {    "artifact_retention_profile": "standard",    "autonomy_mode": "review",    "base_branch": "main",    "coding_project_id": "c2e5f8a1-3b4d-4e6f-8a9b-1c2d3e4f5a6b",    "coding_repository_id": "8a1d4e2f-5b6c-4d7e-8f9a-0b1c2d3e4f50",    "created_at": "2026-10-27T09:00:00Z",    "current_phase": "execute",    "egress_profile": "managed_default",    "external_request_id": "ticket-4812",    "id": "3f9c2b7a-6d1e-4c8b-9a2f-1b7e5d4c3a21",    "pr_url": null,    "title": "Add a dark mode toggle to the header",    "updated_at": "2026-10-27T09:04:12Z",    "validation_iteration": 0  }}