---
title: Logs API
description: Read bounded source errors and schema changes without exposing source values or another organization's existence.
species: reference
---
# Logs API

Log reads require `data:read`. Responses are confined to the bearer credential's organization and use bounded newest-first collections.

## Source errors

```endpoint
GET /sources/{id}/errors
```

Returns recent categorized errors for one source. Use `limit` within the endpoint bound. The response avoids credential values and raw destination messages that could contain customer data.

An inaccessible source returns `404 source_not_found`, matching an unknown id.

## Schema changes

```endpoint
GET /schema-changes
```

Returns recent non-empty schema diffs. Filter with `source=<source_id>` and bound the response with `limit`.

A change records the affected table and added, removed, or changed columns. It is the signal to review strict projections and model type contracts before the next enforced run.

## Operational use

Poll logs after a terminal sync failure or follow source progress first through the [Sync API](/v2/docs/api/sync). Do not parse human message text for automation. Stable categories, codes, ids, and timestamps are the machine interface.

Every response includes `Request-Id`; include it with the source id and time boundary when contacting support.
