---
title: "Sync automation from latest Git release"
method: POST
path: "/api/v1/automations/{id}/sync"
tags: ["Automations"]
---

# Sync automation from latest Git release

`POST /api/v1/automations/{id}/sync`

Reconciles automation registry metadata and trigger projections from the latest Git source release. This operation is idempotent for unchanged source state: repeated calls against the same latest release leave the same automation registry state and may repeat the same warnings. Requires a Bearer API token for the organization and a user-backed API key. It does not publish source; it reads the already-published latest release manifest. Versioned targets are rejected with 400, missing organization/source/release/manifest state returns 404, invalid manifests return 400, and provider or persistence failures return 5xx.

## Path parameters

- `id` string, required — Automation target to sync, such as agents.invoice-agent or workflows.extract. Do not include a version; sync always uses the latest Git release.

## Response `200`

Automation metadata, latest release information, and non-fatal sync warnings.

- object
  - `automation` object, required
    - `id` string, required — Automation id after reconciliation.
    - `type` 'agent' | 'workflow', required — Automation kind inferred from the source package path.
    - `slug` string, required — Source package slug within agents/ or workflows/.
    - `status` 'active' | 'archived', required — Current automation registry status.
    - `updatedAt` string, required — ISO timestamp for the reconciled automation row.
  - `release` object, required
    - `version` string, required — Latest released source package version that was synced.
    - `tag` string, required — Git release tag read during sync.
    - `commit` string, required — Git commit for the release tag.
  - `warnings` string[], required — Non-fatal source-state warnings, such as unsupported email alias domains.

## Other responses

- `400` — Validation error. Request shape did not match the spec.
- `401` — Missing or invalid API key
- `403` — API key lacks required scope
- `404` — Resource not found
- `413` — Payload too large. Upload exceeded the per-request size cap.
- `429` — Rate limit exceeded
- `500` — Internal server error

---

[API](https://skmtc.dev/eigenpal/apis/eigenpal-api.md) · [All operations](https://skmtc.dev/eigenpal/apis/eigenpal-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/eigenpal/eigenpal-api/revisions/dddcddf1975c/schema)
