# Point-in-time ticker to CIK mapping

A CIK is the SEC's permanent identifier for a company. Point-in-time mapping returns which company held a ticker at a specific timestamp based on active intervals. For example, CIK 1326801 maps to FB in October 2021 and META in June 2022.

Reference page. Updated 2026-08-26 against the corpus described on [coverage](https://pit.aqx.llc/docs/coverage).

## Intervals

Each interval is half-open, `[valid_from, valid_to)`: the left edge is inclusive and the right edge is exclusive. Each timestamp falls into exactly one interval per ticker. A listing opens the left edge, and a delisting or suspension closes the right edge. The CIK changes only when the corporate entity changes, so a rename keeps the same CIK while changing the ticker.

| Ticker | CIK | Name at T | valid_from | valid_to |
| --- | --- | --- | --- | --- |
| FB | 1326801 | Facebook, Inc. | 2012-05-18 | 2021-10-28 |
| FB | 1326801 | Meta Platforms, Inc. | 2021-10-28 | 2022-06-09 |
| META | 1326801 | Meta Platforms, Inc. | 2022-06-09 | `null` |
| SIVB | 719739 | SVB Financial Group | 2005-05-31 | 2023-03-28 |

On 2021-10-28, the company renamed itself while keeping the same symbol. On 2022-06-09, the Nasdaq ticker changed from FB to META before the market open. SIVB was suspended on 2023-03-28, so March 2023 SVB filings still map. `valid_to: null` means the interval is currently open.

## Reading it at an instant

`/v1/sample/mapping` requires no API key. The two calls below differ only by their `as_of` timestamp and span the ticker change.

**as_of 2021-10-01T00:00:00Z — FB**

```
$ curl -s "https://api.pit.aqx.llc/v1/sample/mapping?example=meta&as_of=2021-10-01T00:00:00Z"

{
  "results": [
    {
      "ticker": "FB",
      "cik": "1326801",
      "name": "Facebook, Inc.",
      "valid_from": "2012-05-18T00:00:00Z",
      "valid_to": "2021-10-28T00:00:00Z",
      "source": "curated",
      "leakage_risk": "none"
    }
  ],
  "count": 1
}
```

**as_of 2022-06-10T00:00:00Z — META**

```
$ curl -s "https://api.pit.aqx.llc/v1/sample/mapping?example=meta&as_of=2022-06-10T00:00:00Z"
```

The second call returns `META` with `valid_to: null`. Both calls return the same CIK because the CIK persists across renames. Join on the CIK, then resolve the ticker at the target timestamp. Test both calls in the [as-of demo](https://pit.aqx.llc/demo?example=meta).

## leakage_risk

Every mapping row includes its provenance and its potential impact on backtest leakage.

| `source` | `leakage_risk` | Use |
| --- | --- | --- |
| `curated` | `none` | Point-in-time intervals with dated edges. Safe for as-of joins. |
| `sec_company_tickers_current` | `current_universe` | A dated snapshot of today's SEC ticker file. It holds the assignments in force when the snapshot was taken, so joining 2019 filings on it drops FB entirely. |

If a ticker's only interval at the cutoff date is `current_universe`, `/v1/news` treats it as a coverage gap and returns a key you can branch on. Read [lookahead bias](https://pit.aqx.llc/glossary/lookahead-bias) to see how this join affects backtests.

## Paid routes

| GET | Takes |
| --- | --- |
| `/v1/mapping/ticker/{ticker}` | `as_of`, required |
| `/v1/mapping/cik/{cik}` | `as_of`, required |

Omitting `as_of` returns HTTP 400 with `invalid_clock` because the endpoint selects intervals by timestamp. If no interval matches the ticker at `as_of`, the endpoint returns HTTP 409 with `coverage_missing`. This matches the `identity.ticker/…` key in `coverage.missing` on `/v1/news`.

**GET /v1/mapping/cik/1326801?as_of=2022-06-10T00:00:00Z — 200 · count 1**

```
$ curl -s -H 'Authorization: Bearer pit_live_…' \
  "https://api.pit.aqx.llc/v1/mapping/cik/1326801?as_of=2022-06-10T00:00:00Z"
```
