API overview
Every Syndai REST endpoint, generated from the OpenAPI spec at https://api.syndai.ai/openapi.json.
Base URL https://api.syndai.ai. Send your API key as Authorization: Bearer sk_... (see Authentication). The machine-readable spec is openapi.json.
Account
The API key you are calling with and the workspace it belongs to. Read the key's identity and scopes, revoke it, or page through a snapshot of the workspace's runs, projects and threads to seed a local mirror.
Runs
A run is one coding task Syndai carries from a prompt to a delivered change. Creating a run starts billable work; its `external_request_id` is the idempotency key, so a retry never starts a second run. Follow a run by streaming its events or polling `GET /runs/{id}`. Phases are open-ended: a run can pause to ask you something, so read `pending_hitl_requests` and answer through `/responses` rather than assuming a fixed order.
- Cancel a run POST
- Create a run POST
- Get a run's change state GET
- Get a run's live view GET
- Get a run's delivered diff GET
- Get a run's timeline GET
- Get a run GET
- Upload an executable for a run to learn from POST
- Upload an image for a run POST
- List runs GET
- Open a validation artifact GET
- Rename a run POST
- Answer a run's question POST
- Steer a run in progress POST
- Stop a run and keep its work POST
- Stream a run's events GET
Run review
The review points a run can stop at before it builds: confirm or co-sign its acceptance criteria, edit one criterion, and request changes to, extend or skip its spec and plan review. Most need a signed-in person; a stale review round or a closed review returns 409.
- Co-sign an auto-approved run's criteria POST
- Edit a drafted acceptance criterion POST
- Extend a run's spec review window POST
- Get the full text of a run's plan GET
- Confirm a run's acceptance criteria POST
- Request changes to a run's plan POST
- Request changes to a run's drafted spec POST
- Start building without confirming the spec POST
Landing
Getting a finished run's change onto your default branch and live: retry or close a held landing, go live anyway past the checks that held it (a person's decision), read the diff a held landing would ship, or revert a landed change. These act on your real repository.
Backlog
Work Syndai proposes for a repository: next-task offers and task groups you can add to the roadmap, edit, move to the top, start or dismiss. Viewing and dismissing is free; starting a task or group creates runs, which is billable work.
Schedules
Recurring runs on a cron trigger. Create, update, pause, resume, fire now or delete a schedule. Every fire is a normal run that spends credits, and a schedule that may merge or push re-checks its writer's consent at each fire.
Repositories
The repositories connected to your workspace. List them, change a repository's settings, and make or undo a direct text edit on a live site without starting a full run.
Secrets
Workspace secrets and environments that runs and deployed apps read. Listing returns metadata only, never values. Reading production values needs a short-lived step-up that a workspace owner or admin approves in the browser (the production-access flow).
Tools
Custom tools your runs may call: skills and MCP servers, workspace-wide or for one project. Add, update, rescan or delete a tool. Each is safety-scanned, and runs skip a flagged tool until someone acknowledges the flag.
Webhooks
Signed HTTP callbacks for run events. Register endpoints, send a test event, rotate the signing secret, and list or redeliver past deliveries. Verify every delivery's signature and treat events as at-least-once.
Members
The people in your workspace and their roles. Invite, accept, list, change a role, or revoke a member or a pending invite. Most writes need an owner or admin.
Policy
Workspace-wide run defaults: validation, review gates, autonomy and budget. Read the JSON Schema a policy must match and the current defaults, list earlier versions, or replace them; a run's own `policy_config` overrides them for that run.
Findings
Bugs Syndai's scanner found in your repositories. List findings, read or change a repository's weekly scan setting, or start a scan now; each scan is capped by the per-scan limit.
Docs
API docs Syndai builds for your repository from its running code: read their status and freshness, and turn on keeping them up to date or publishing them on your site.
Apps
Beta: may change without notice. Publishing a repository as a hosted app: publish, unpublish, read and update a publication, its deployments, custom domain, runtime and monthly AI limit, and export its data or waitlist.
- Add a custom domain to an app POST
- Export an app's data GET
- Download the published app's waitlist as CSV GET
- Read an app's custom domain GET
- Get a repository's app publication GET
- Read an app's runtime GET
- List an app's waitlist signups GET
- Read a GitHub repository's production deploys and latest release GET
- Read a GitHub repository's package publishing GET
- List an app's deployments GET
- List the workspace's apps GET
- Publish a repository's app POST
- Publish a GitHub repository's packages POST
- Redeploy an earlier version of a repository's app POST
- Remove an app's custom domain DELETE
- Resume a pinned app on its latest version POST
- Set an app's monthly AI limit PUT
- Unpublish an app DELETE
- Update an app's publication settings PATCH
Store
Beta: may change without notice. Shipping an app to the App Store and Google Play: store connections, builds, releases and rollouts, the store listing in every language, screenshots, review logins and the release checklist.
- List the app in another language POST
- Build the release-branch head now POST
- Check which store searches find the app now POST
- Check the app's store connections now POST
- Put this web app on Google Play POST
- Design localized store screenshots POST
- Export the app's build settings GET
- Generate and translate the store listing into drafts POST
- Check whether the store has the app record GET
- Download the Android app's first build GET
- Read the app's store listing kit GET
- Read which store searches find the app GET
- Show the review account Syndai made for this app GET
- Download the upload key's certificate GET
- Download the Android upload key GET
- Read a repository's App stores card GET
- Halt the rollout on both stores POST
- List the repository's branches GET
- Ask Syndai to translate the app POST
- Push the ticked locales to the stores POST
- Queue the tested version for release POST
- Resume a halted rollout on both stores POST
- Give this app's review account a new code POST
- Set the demo login App Review signs in with PUT
- Shoot the app's store screenshots POST
- Start Google Play's closed test POST
- Tick (approve) one store locale POST
- Edit one listing field's draft PATCH
- Tick the Ready to release checklist PATCH
- Choose the screenshots a store locale shows PATCH
- Change the app's release settings PATCH
- Change the app's store settings PATCH
Sites
Beta: may change without notice. Websites connected for search and AI visibility: connect a site, link it to Google Search Console, read its SEO tab, show or hide it on Google, and run a priced Ask AI check of how assistants answer about it.
- Check the Google Business Profile again POST
- Ask Google again whether the site is connected POST
- Finish verifying a site with Google POST
- Connect a site POST
- Disconnect a site from Google DELETE
- Price an Ask AI check GET
- Guess a GitHub project's website address GET
- Read the latest Ask AI check GET
- Read one site's SEO tab GET
- Read a site's Google connection GET
- List the workspace's sites GET
- Mark a listing or set Google's review link PUT
- Record a press of the SEO receipt line POST
- Show a site on Google, or hide it POST
- Start an Ask AI check POST
- Start Syndai verifying a site with Google POST
Receipts
Public, unauthenticated reads of a shared run receipt: the receipt, its visual evidence, white-label branding, and an embeddable SVG badge. The token in the share link is the credential; revoking the share makes every route 404.
CLI auth
The device login the `syndai` CLI uses to get an API key: start a login, show the user code to a person to approve in the browser, then poll for the key. Unapproved polls answer with OAuth device-flow errors.