> ## Documentation Index
> Fetch the complete documentation index at: https://docs.joinyellowbrick.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Search insiders and trades, list curated feeds, and fetch a single transaction.

The CEO Watcher API is for developers with an active Premium subscription. It exposes the same search, feeds, and transaction detail surfaces used by the product.

Create a key on [Developer](https://www.ceowatcher.com/developer). Send `Authorization: Bearer cw_...`. See [Authentication](/ceowatcher-api/authentication).

This API is separate from the [Yellowbrick API](/api/overview).

Use of the API is subject to the [CEO Watcher Terms of Service](https://www.ceowatcher.com/terms-of-service). You may use CEO Watcher data for trading, research, and investment decisions. You may not use the API or the data to create, operate, or offer a product or service that conflicts with or competes with any Yellowbrick Investing Inc. service, including CEO Watcher and Yellowbrick.

## How the pieces fit

1. **Insiders → Search** resolves a reporting owner by name to a CIK. See [Insiders](/ceowatcher-api/insiders).
2. **Insider Trades → Search** finds Form 4 trades with the same filters as the in-app search. Pass the CIK as `reportingOwnerCik`. See [Filters](/ceowatcher-api/filters).
3. **Feeds → List** returns accession/transaction ids from curated feeds (with optional ticker, date, and sector filters).
4. **Transactions → Get** hydrates one trade by accession number and transaction id.

Feeds intentionally return a compact list. Call Get for each row you need full fields for.

## Insiders

`GET /api/v1/insiders?q=buffett&limit=10` resolves a name to a reporting-owner CIK. Full reference: [Insiders](/ceowatcher-api/insiders). API playground: [Insiders → Search](/api-reference/insiders/search).

## Search

`POST /api/v1/search`

```json theme={null}
{
  "filter": {
    "cikOrTicker": "AAPL",
    "sortBy": "filedAt",
    "sortDirection": "desc"
  },
  "pagination": {
    "cursor": null,
    "pageSize": 50
  }
}
```

Omitted filter fields use the same defaults as the product (including `excludeAnomalousTransactions: true` and `filingDatePreset: "All time"`). Full field reference: [Filters](/ceowatcher-api/filters).

Response envelope: `data` (camelCase trade rows), `nextCursor`, `prevCursor`, `hasMore`.

`pageSize` is 1–100 (default 100). Pass `nextCursor` back with the **same** filter to continue.

## Feeds

`GET /api/v1/feeds?feed_id=15&feed_id=16&limit=10`

| Parameter | What it does |
| - | - |
| `feed_id` | Required. Repeat for multiple feeds. |
| `limit` | 1–25, default 10 |
| `cursor` | Opaque cursor from `next_cursor` |
| `ticker` | Optional ticker filter |
| `from` / `to` | Inclusive filing dates (`YYYY-MM-DD`) |
| `sector` | Sector slug or CapIQ industry numeric id |

Common feed ids:

| Feed | Buy ids | Sell ids |
| - | - | - |
| Top Trades | 15 | 16 |
| CEO Trades | 17 | 18 |
| Unusual 10B5-1 | 1 | 2 |
| Abnormally Large | 3 | 4 |
| Reversals | 5 | 6 |
| Weekend Filings | 7 | 8 |
| Momentum | 9 | 10 |
| Top Insiders | 11 | 12 |
| Large trades | 13 | 14 |

Response rows are `{ accession_number, transaction_id, filed_at }`.

## Transactions

`GET /api/v1/transactions/{accessionNumber}/{transactionId}`

Optional `fields` is a comma-separated list of snake\_case column names. Defaults match the product detail view. `feed_ids` is always included.

## Errors

Responses use problem details: `type`, `title`, `status`, `detail`.

| Status | When |
| - | - |
| `400` | Invalid body, query, or cursor |
| `401` | Missing or invalid API key |
| `403` | Premium required |
| `404` | Transaction not found |
| `503` | API keys not configured / Unkey unavailable |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.