---
title: "Change feed"
method: GET
path: "/v1/changes"
tags: ["Records"]
---

# Change feed

`GET /v1/changes`

## Request

- Base URL: `https://sourcefinch.com`
- URL: `https://sourcefinch.com/v1/changes`
- Auth: HTTP bearer

Field-level record changes (added, changed, removed) across the project's sources, oldest first. Store `next_cursor` and pass it back as `cursor` to receive only newer changes.

## Query parameters

- `limit` integer
- `cursor` string
- `source_id` string, uuid

## Headers

- `X-Request-Id` string
- `SourceFinch-Project` string, uuid

## Response `200`

A page of changes

- ChangePage
  - `data` Change[], required
    - `id` integer, required
    - `source_id` string, uuid, required
    - `run_id` string, uuid, required
    - `record_key` string, required
    - `kind` 'added' | 'changed' | 'removed', required
    - `changed_fields` string[], required
    - `before` unknown
    - `after` unknown
    - `baseline` boolean, required: True for the first recorded run of a source: everything is 'added'
    - `created_at` string, required: ISO-8601 timestamp (UTC)
  - `next_cursor` string, nullable, required

## Other responses

- `400`: Problem details; `code` is `validation`
- `401`: Problem details; `code` is `unauthenticated`
- `403`: Problem details; `code` is `forbidden`
- `429`: Problem details; `code` is `rate_limited`
- `500`: Problem details; `code` is `internal`

---

[API](https://skmtc.dev/sourcefinch/apis/sourcefinch-api.md) · [All operations](https://skmtc.dev/sourcefinch/apis/sourcefinch-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sourcefinch/apis/sourcefinch-api/revisions/190cbe57a5e8?raw)
