> Finks API docs. Every page: https://finks.ai/llms.txt. The OpenAPI spec: https://finks.ai/docs/openapi.json.

# Company and filings

Follow a company's filings and news as they land.

Base URL: https://data.finks.ai. Send your key as `Authorization: Bearer $FINKS_API_KEY`.

## Company timeline

`GET /v1/companies/{symbol}/events` (#get-v1-companies-symbol-events)

One company's filings and coverage, newest first.

- A page can be short, even empty, before the end: keep paging while `has_more` is true.

### Parameters

- `symbol` (string, path, required): The company's ticker.
- `types` (string, query, can be null): Comma list of `brief`, `article`, `filing`. Default: every type the plan covers.
- `event_types` (string, query, can be null): Comma list of event-type slugs (`earnings`, `m_and_a`, ...): only items carrying any of them. An item with no event type is excluded while it is set. Unset, the filings are the 8-Ks and the Form 4 (`insider_transaction`), Form 144 (`insider_sale_notice`) and Schedule 13D/13G (`beneficial_ownership`) filings; the other SEC form filings (`ownership_stake`, `initial_holding`, `insider_annual_transaction`, `late_filing_notice`, `delisting_notice`, `registration_termination`) are listed only when named here.
- `published_after` (string, query, can be null): RFC 3339, inclusive. Default: the start of the plan's history window.
- `published_before` (string, query, can be null): RFC 3339, exclusive.
- `limit` (integer, query, can be null): Results per page: at least 1, at most your plan's page cap. Default 10, or the cap if lower.
- `cursor` (string, query, can be null): The `next_cursor` of the previous page. Leave it out for the first page.

### Response

- `has_more` (boolean, required)
- `results` (array of object, required): Newest first by `published_at`, at most `limit` items, may be empty.
- `symbol` (string, required): The company's ticker.
- `symbols` (array of string, required): Every listing the timeline matched on: the symbol and the other classes of its issuer (`GOOGL` also matches `GOOG`), sorted.
- `next_cursor` (string, can be null): Opaque keyset token for the next, older page. `null` on the last page.
- `primary_symbol` (string, can be null): The issuer's primary ticker in SEC's ticker map (`GOOG` -> `GOOGL`, `BRK.A` -> `BRK-B`; a retired ticker of a still-listed issuer, `SQ` -> `XYZ`). Absent when no issuer SEC's map lists is found for the symbol.

### Statuses

- 200: The company's items, newest first
- 400: `request.invalid` naming the parameter, `request.out_of_plan` naming the allowance, or `invalid_cursor`
- 401: Missing, unknown, revoked, or expired key
- 404: `not_found`, no company is listed under this symbol
- 429: Rate limited, quota denied, or spend cap reached
- 501: The plan grants no serving limit
- 503: `content.unresolved`, the company lookup or a pool could not answer

### Request

```bash
curl -sS "https://data.finks.ai/v1/companies/NVDA/events?limit=10" \
  -H "Authorization: Bearer $FINKS_API_KEY"
# Next page: the same URL plus &cursor=<next_cursor>, while "has_more" is true. A page can be short, even empty, before the end.
```

Metered: one `feed_page` per page.

- Data: Market news, from Finks and financial publishers. Updates: daily.
- Data: SEC filings, from SEC EDGAR. Updates: as filed.
- Data: Company timeline, from Finks briefs and SEC filings. Updates: daily.

## Filing feed

`GET /v1/content` (#get-v1-content)

SEC filings, newest first, filtered by form, company and date.

### Parameters

- `type` (string, query, can be null): `filing`, the type this route lists.
- `symbols` (string, query, can be null): ANY within, AND across filters.
- `entities` (string, query, can be null): Canonical entity ids.
- `entity_match` (string, query, can be null): `any` (default) or `all`. Without `entities`, a 400.
- `sectors` (string, query, can be null): Accepted and ignored: it filters nothing today.
- `themes` (string, query, can be null): Taxonomy facet.
- `event_types` (string, query, can be null): Matches the scalar `event_type` or the `event_types[]` array. Each slug must be on the event-type allowlist; any other is a 400.
- `geos` (string, query, can be null): Taxonomy facet.
- `form` (string, query, can be null)
- `cik` (string, query, can be null)
- `published_after` (string, query, can be null): RFC 3339, inclusive. Half-open interval with `published_before`.
- `published_before` (string, query, can be null): RFC 3339, exclusive.
- `min_confidence` (string, query, can be null)
- `include_full_text` (boolean, query, can be null): Ask for the raw primary-document text. Not every document can be served in full: read `full_text_status` for the outcome.
- `cursor` (string, query, can be null): The `next_cursor` of the previous page. Leave it out for the first page.
- `limit` (integer, query, can be null): Results per page: at least 1, at most your plan's page cap. Default 10, or the cap if lower.
- `view` (string, query, can be null): `full` (default): the full record. `compact`: one small `CompactFilingRecord` per filing (no evidence, citations, facets, versions or rights fields) and a `summary` block; the page is a `CompactContentPage`. Compact takes no `include_full_text=true`.
- `order` (string, query, can be null): `asc` (default): oldest first. `desc`: newest first. The cursor binds the order.
- `group_by` (string, query, can be null): `accession`, with `view=compact` only: filings sharing an accession on the page collapse into the first one's entry, the rest under its `parts`.

### Response

- `data` (array of object, required)
- `has_more` (boolean, required)
- `next_cursor` (string, can be null): Opaque server-issued token. `null` when this is the last page.

### Statuses

- 200: One page of filing records: a `ContentPage`, or a `CompactContentPage` under `view=compact`
- 400: `request.invalid`, `invalid_cursor`, or `request.out_of_plan` naming `filing`
- 401: Missing, unknown, revoked, or expired key
- 429: Rate limited, quota denied, or spend cap reached
- 501: A parameter this deployment cannot honestly answer
- 503: `content.unresolved`, the read did not resolve

### Request

```bash
curl -sS "https://data.finks.ai/v1/content?type=filing&form=8-K&limit=10" \
  -H "Authorization: Bearer $FINKS_API_KEY"
```

Metered: one `feed_page` per page.

- Data: SEC filings, from SEC EDGAR. Updates: as filed.
- Data: 8-K events, from SEC EDGAR. Updates: as filed.