---
title: "A batch of catalogue deltas"
method: POST
path: "/v1/source-connections/{id}/agent-runs/{runId}/deltas"
tags: ["Source Plane"]
---

# A batch of catalogue deltas

`POST /v1/source-connections/{id}/agent-runs/{runId}/deltas`

## Request

- Base URL: `https://brain.inite.ai`
- URL: `https://brain.inite.ai/v1/source-connections/{id}/agent-runs/{runId}/deltas`
- Auth: HTTP bearer

Up to 1000 `upsert` / `gone` / `checkpoint` deltas from the agent’s walk, applied to the catalogue exactly as a server walk would be. The answer names the items whose revision moved — the ones the agent must now fetch and post. The local agent’s wire (docs/source-plane.md § Agent): the connector runs on the agent’s machine, the engine keeps the books here. Scope brain:write — a tenant write key, never an admin one; it reaches only the connections an operator pointed at its host (`host: agent:<id>`). Source plane operator surface (docs/roadmap/raw-evidence-sources-2026-09.md) — answers a bare 404 until `SOURCE_PLANE_ENABLED=1`.

Required scope: `brain:write`.

## Path parameters

- `id` string, required
- `runId` string, required

## Request body

- AgentDeltasRequest
  - `deltas` union[], required
    - union
      - object
        - `item` object, required
          - `acl` object
          - `externalId` string, required
          - `mediaType` string
          - `modifiedAt` string
          - `originUri` string
          - `path` string
          - `revision` string
          - `size` integer
          - `title` string
        - `type` 'upsert', required
      - object
        - `externalId` string, required
        - `type` 'gone', required
      - object
        - `checkpoint` object, required
        - `type` 'checkpoint', required

## Response `201`

What to fetch, and the batch’s counters.

- AgentDeltasResponse
  - `changed` integer, required
  - `fetch` string[], required
  - `gone` integer, required
  - `new` integer, required
  - `seen` integer, 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.
- `409`: State conflict — e.g. a lost/mismatched claim token, an already claimed work item, or an immutable-version republish.

---

[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)
