Update a deployment

⚠️
Preview — this feature is being built; the design below is the spec.
PATCH https://app.syntic.ai/v1/deployments/{deployment_id}

Change a deployment’s trigger, template, agent or options. A new schedule takes effect from the next firing time it produces.

For how this fits into a full workflow, see Scheduled and triggered runs.

Headers

HeaderRequiredValue
AuthorizationYesBearer <key>: a private inference key (sk_live_...). See Authentication.
syntic-betaYes, while in previewagents-2026-11-01. Without it the call fails with 400 beta_required. See Versioning.
Content-TypeYesapplication/json

Path parameters

ParameterTypeDescription
deployment_idstringThe deployment id, starting with dep_.

Body parameters

ParameterTypeRequiredNotes
namestringNoUnique in the workspace.
agent_idstringNoAn active agent.
agent_versioninteger or nullNoPin a version; null uses the latest at firing time.
triggerobjectNo{type: "schedule", cron, timezone}, {type: "webhook"} or {type: "manual"}.
input_templatestringNoFirst user message of each session, with placeholders such as {{run.date}} and {{payload.order_id}}. Up to 20,000 characters.
session_optionsobjectNomemory_scope, environment_id, limits, metadata for each session.
concurrencystringNoskip_if_running (default), queue or allow.

Response

200 OK, Content-Type: application/json

{
  "id": "dep_01JC9E2G4J6L8N0Q2S4U",
  "type": "deployment",
  "name": "daily-ticket-digest",
  "agent_id": "agt_01JC4R8W6Q2N9X3T5V7Y",
  "agent_version": null,
  "status": "active",
  "trigger": {
    "type": "schedule",
    "cron": "30 6 * * 1-5",
    "timezone": "Europe/London"
  },
  "input_template": "Summarise the support tickets opened on {{run.date_previous_day}}. Post the digest to #support-leads.",
  "session_options": {
    "memory_scope": "team:support",
    "limits": {
      "max_turns": 20
    }
  },
  "concurrency": "skip_if_running",
  "next_run_at": "2026-11-06T06:30:00Z",
  "last_run": {
    "id": "drn_01JC9F1H3K5M7P9R1T3V",
    "status": "succeeded",
    "session_id": "sesn_01JC9F2J4L6N8Q0S2U4W",
    "fired_at": "2026-11-05T07:00:00Z"
  },
  "created_at": "2026-11-01T12:00:00Z"
}

Examples

curl -sS -X PATCH https://app.syntic.ai/v1/deployments/dep_01JC9E2G4J6L8N0Q2S4U \
  -H "Authorization: Bearer $SYNTIC_API_KEY" \
  -H "syntic-beta: agents-2026-11-01" \
  -H "Content-Type: application/json" \
  -d '{
      "trigger": {
        "type": "schedule",
        "cron": "30 6 * * 1-5",
        "timezone": "Europe/London"
      }
    }'

Errors

Errors use the error envelope and carry a request_id. Codes specific to this operation:

StatustypecodeWhen
400invalid_request_errorbeta_requiredThe syntic-beta header is missing.
400invalid_request_errorinvalid_cronUnparseable, or fires more often than every 5 minutes.
400invalid_request_errorunknown_timezoneNot an IANA time zone.
400invalid_request_errorinvalid_templateUnclosed or unknown placeholder.
409conflict_erroragent_archivedThe agent is archived.
404not_found_errordeployment_not_foundNo deployment with that id in this workspace.
401authentication_errorinvalid_api_keyThe key is missing, unknown, revoked or expired.
429rate_limit_errorrate_limitedToo many requests; wait for Retry-After. See Rate-limit headers.
Was this page helpful?