---
title: "Sync now"
method: POST
path: "/v1/admin/source-connections/{id}/sync"
tags: ["Source Plane"]
---

# Sync now

`POST /v1/admin/source-connections/{id}/sync`

## Request

- Base URL: `https://brain.inite.ai`
- URL: `https://brain.inite.ai/v1/admin/source-connections/{id}/sync`
- Auth: HTTP bearer

Runs the engine over the connection: enumerate from the checkpoint (`full: true` re-walks everything and marks what is missing gone), diff against the catalogue, fetch every changed item by `contentPolicy` through the door for its shape, stamp the revision for the drift sweep, apply `deletePolicy` to what is gone. Default enqueues a `source_sync` job and returns its run id; `inline: true` runs it in the request and returns the summary. A re-run over an unchanged source is 0 fetches. Source plane operator surface (docs/roadmap/raw-evidence-sources-2026-09.md) — answers a bare 404 until `SOURCE_PLANE_ENABLED=1`.

Required scope: `brain:admin`.

## Path parameters

- `id` string, required

## Request body

- SyncNowRequest
  - `full` boolean
  - `inline` boolean
  - `itemIds` string[]

## Response `201`

Enqueued, or the inline summary.

- union
  - object
    - `created` boolean, required
    - `enqueued` true, required
    - `runId` string, required
  - object
    - `enqueued` false, required
    - `summary` SourceSyncSummary, required
      - `changed` integer, required
      - `closed` integer, required
      - `connectionId` string, required
      - `deduplicated` integer, required
      - `durationMs` integer, required
      - `error` string
      - `failed` integer, required
      - `fetched` integer, required
      - `gone` integer, required
      - `ingested` integer, required
      - `mode` 'full' | 'incremental', required
      - `new` integer, required
      - `principals` object
        - `accounts` integer, required
        - `changed` boolean, required
        - `epoch` integer, required
        - `groups` integer, required
        - `linked` integer, required
      - `seen` integer, required
      - `skipped` string
      - `status` 'succeeded' | 'failed' | 'skipped', required
      - `unchanged` integer, required

## Other responses

- `400`: Validation failed.
- `401`: Missing or unknown bearer key.
- `403`: The key lacks the required scope.
- `404`: No such resource in this tenant.

---

[API](https://skmtc.dev/inite/apis/inite-brain-platform-api.md) · [All operations](https://skmtc.dev/inite/apis/inite-brain-platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/inite/apis/inite-brain-platform-api/revisions/c7c3eb5e304b?raw)
