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

# Migrate from financialdatasets.ai

> Dual-run one financial-data workflow against SEC API and verify periods, units, and filing evidence before cutover.

Use this guide when a financialdatasets.ai workflow needs a source-aware SEC API replacement. SEC API provides `GET /v1/statements/all`, `GET /v1/facts`, and `GET /v1/filings` for normalized statement bundles, reported facts, and filing identity. The prior provider may remain the better choice for data families, historical coverage, or non-SEC sources that you have not qualified on SEC API.

## Map the consumer, not just the number

Choose one screen, calculation, or export. Write down the period basis, units, null behavior, and evidence fields its consumer needs.

| Consumer job               | SEC API path to evaluate | Compare before moving                                              |
| -------------------------- | ------------------------ | ------------------------------------------------------------------ |
| Refresh a statement bundle | `GET /v1/statements/all` | Periods, units, rows used, and filing context.                     |
| Read a reported concept    | `GET /v1/facts`          | Requested and resolved tag, unit, form, period, and source record. |
| Identify a source filing   | `GET /v1/filings`        | Form, filing date, accession number, URL, and pagination.          |

Verify the current provider's route and response shape in its own documentation before creating a mapping. Matching a headline number is not enough: a reported value also has a period, unit, presentation, and source context.

## Dual-run one annual statement case

```bash theme={null}
curl --fail-with-body -sS -H "x-api-key: $SECAPI_API_KEY" \
  "https://api.secapi.ai/v1/statements/all?ticker=AAPL&period=annual&limit=1"

curl --fail-with-body -sS -H "x-api-key: $SECAPI_API_KEY" \
  "https://api.secapi.ai/v1/facts?ticker=AAPL&tag=Revenues&form=10-K&limit=4"
```

Persist the request parameters, retrieval time, `requestId`, period, units, source identifiers, and every field your application displays. Compare nulls as carefully as populated values. Do not coerce an absent observation to zero or assume the same tag is comparable across issuers.

## Decide where SEC API fits

Use SEC API when a reusable SEC statement and fact layer with filing context fits the consuming contract. Keep the prior provider when it has the required source type, presentation, or historical scope that your evaluation has not demonstrated here. Use direct SEC data when your team needs to own taxonomy parsing and normalization.

## Make the release reversible

1. Dual-run one issuer and one annual case.
2. Compare fields, periods, units, source identity, and null behavior.
3. Store the SEC API evidence record beside the result.
4. Release one read behind a reversible control.
5. Add another statement family only after the first acceptance test passes.

## Next step

Select the lowest-risk statement read, save the current output and its evidence record, then decide whether that one consumer can move.

<CardGroup cols={3}>
  <Card title="Statements API reference" icon="table-properties" href="/api-reference/statements">Inspect the documented statement surface.</Card>
  <Card title="Facts API reference" icon="book-open" href="/api-reference/facts/get-v1-facts">Review tags and response metadata.</Card>
  <Card title="XBRL evaluation" icon="badge-info" href="/evaluate/xbrl-facts-api">Run a reconciliation proof.</Card>
</CardGroup>
