> ## 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 AskEdgar

> Map every AskEdgar dilution endpoint onto the SEC API and handle the auth, verification-model, and pricing changes you hit at cutover

<Info>
  This guide maps every AskEdgar dilution endpoint onto SEC API and walks through the auth, verification-model, and pricing changes you'll see at cutover.
</Info>

## What changes when you switch

<CardGroup cols={2}>
  <Card title="Per-field verification, not a boolean" icon="shield-check" href="/freshness-and-trust">
    Replace `verified === true` checks with the SEC API `verification` block (`confidence`, `crossValidationsPassed`, `sourceSpanResolved`).
  </Card>

  <Card title="Auth header swap" icon="key" href="/auth-and-pricing">
    AskEdgar uses `API-KEY: …`; SEC API uses `x-api-key: …`. Same per-request shape, different header name.
  </Card>

  <Card title="Predictable subscription option" icon="credit-card" href="/plans-and-pricing">
    SEC API offers PAYG and flat subscriptions ($55 Personal, $239 Team). AskEdgar's API is per-KB only.
  </Card>

  <Card title="Broader API surface" icon="layers-2" href="/api-reference">
    14 dilution endpoints plus 38 other endpoint families (filings, statements, factors, insiders, macro). One key, 39 families.
  </Card>

  <Card title="Hosted MCP and SDKs" icon="bot" href="/mcp-workflows">
    106 MCP tools, including dilution workflows, and 4 SDKs (JS, Python, Go, Rust). AskEdgar also documents an MCP surface with API tools generated from OpenAPI, documentation tools, and Bearer API-key forwarding.
  </Card>
</CardGroup>

## Route mapping

<Warning>
  AskEdgar bundles warrants and convertibles into a single `DilutionEntity`. SEC API splits them into dedicated `/v1/dilution/warrants` and `/v1/dilution/convertibles` routes. Plan for a small shape change in your client when you cut over those reads.
</Warning>

* `/v1/dilution-data` -> `/v1/dilution/events`
* `/v1/dilution-data?ticker={t}&id={id}` -> `/v1/dilution/events/{event_id}`
* `/v1/dilution-rating` (latest) -> `/v1/dilution/score`
* `/v1/dilution-rating` (history) -> `/v1/dilution/ratings`
* `/v1/offerings` -> `/v1/dilution/events?form=S-1,S-3,424B5`
* `/v1/registrations` -> `/v1/dilution/events?form=S-1,S-3`
* `/v1/float-outstanding` -> `/v1/dilution/share-float-history?limit=1`
* `/v1/historical-float-pro` -> `/v1/dilution/share-float-history`
* `/v1/reverse-splits` -> `/v1/dilution/reverse-splits`
* `/v1/nasdaq-compliance` -> `/v1/dilution/nasdaq-compliance`
* (no AskEdgar route) -> `/v1/dilution/warrants`
* (no AskEdgar route) -> `/v1/dilution/convertibles`
* (no AskEdgar route) -> `/v1/dilution/rofr`
* (no AskEdgar route) -> `/v1/dilution/lockups`
* (no AskEdgar route) -> `/v1/dilution/cash-position`
* (no AskEdgar route) -> `/v1/dilution/corporate-actions`

## Request translation examples

### Dilution events for a ticker

```bash theme={null}
# AskEdgar
curl "https://api.askedgar.com/v1/dilution-data?ticker=MULN" \
  -H "API-KEY: $ASKEDGAR_API_KEY"

# SEC API
curl "https://api.secapi.ai/v1/dilution/events?ticker=MULN" \
  -H "x-api-key: $SECAPI_API_KEY"
```

### Latest dilution score

```bash theme={null}
# AskEdgar
curl "https://api.askedgar.com/v1/dilution-rating?ticker=MULN" \
  -H "API-KEY: $ASKEDGAR_API_KEY"

# SEC API
curl "https://api.secapi.ai/v1/dilution/score?ticker=MULN" \
  -H "x-api-key: $SECAPI_API_KEY"
```

### Share-float history (full series)

```bash theme={null}
# AskEdgar
curl "https://api.askedgar.com/v1/historical-float-pro?ticker=MULN" \
  -H "API-KEY: $ASKEDGAR_API_KEY"

# SEC API
curl "https://api.secapi.ai/v1/dilution/share-float-history?ticker=MULN" \
  -H "x-api-key: $SECAPI_API_KEY"
```

<Prompt>
  Migrate this AskEdgar integration to SEC API. Replace the host `api.askedgar.com` with `api.secapi.ai` (the existing paths already carry `/v1/...`, so the cutover is host-only — do NOT add `/v1` to the host or you will get `/v1/v1/...`). Swap the `API-KEY` header for `x-api-key`. Map `/v1/dilution-data` to `/v1/dilution/events`, split warrants/convertibles into `/v1/dilution/warrants` and `/v1/dilution/convertibles`, and replace any `verified === true` check with `verification.confidence >= 0.9 && verification.sourceSpanResolved`. Add `?view=agent` for token-efficient summaries on token-sensitive paths. Keep `Request-Id` logging and any current fallback gaps in the final implementation notes.
</Prompt>

## Verification model migration

AskEdgar exposes a single boolean. SEC API exposes the components an agent
can reason about:

```json theme={null}
// AskEdgar
{ "verified": true }

// SEC API
{
  "verification": {
    "confidence": 0.94,
    "crossValidationsPassed": 3,
    "sourceSpanResolved": true,
    "modelVersion": "2026-03",
    "verifiedAt": "2026-04-22T14:31:08Z"
  }
}
```

Practical rewrite: replace `verified === true` checks with
`verification.confidence >= 0.9 && verification.sourceSpanResolved`.
Tighten or relax the threshold per workflow.

## Pricing impact

AskEdgar's API is strictly per-KB. SEC API offers PAYG (per-call) and flat
subscriptions. The conversion lever depends on payload size and call
volume:

| Profile                 | Volume                    | AskEdgar API (PAYG, per-KB) | SEC API option                   | SEC API \$/mo |
| ----------------------- | ------------------------- | --------------------------- | -------------------------------- | ------------- |
| Light researcher        | 100 dilution-data calls   | \~$10.80 (≈$0.108/call)     | PAYG (150 free grant)            | **\$0**       |
| Hedge-fund analyst      | 600 dilution-data calls   | \~\$64.80                   | PAYG (150 free + 450 × \$0.01)   | **\$4.50**    |
| Hedge-fund analyst      | 600 dilution-data calls   | \~\$64.80                   | Personal (predictable)           | **\$55**      |
| Small-cap research team | 5,000 dilution-data calls | \~\$540                     | Team (predictable)               | **\$239**     |
| Small-cap research team | 5,000 dilution-data calls | \~\$540                     | PAYG (150 free + 4,850 × \$0.01) | **\$48.50**   |

AskEdgar API costs assume the published `/v1/dilution-data` rate of
\$0.018/KB and a typical \~6 KB response. SEC API quotas reflect the
published pricing. The 150 included calls are a one-time, non-renewing grant —
see the [billing FAQ](/billing-faq).

## Migration script template

```bash theme={null}
#!/usr/bin/env bash
# Bash treats ** as literal unless globstar is enabled. Without this, the script
# expands src/**/*.{ts,js,py} to a literal path and sed gets a "file not found".
shopt -s globstar nullglob
# Drop-in cutover. Manual review required for the warrants/convertibles split.
# Host replacement does NOT include /v1 — the path substitutions below already
# carry /v1/... so combining the two would produce /v1/v1/... (broken).
sed -i.bak \
  -e 's|https://api\.askedgar\.com|https://api.secapi.ai|g' \
  -e 's|API-KEY: \${ASKEDGAR_API_KEY}|x-api-key: ${SECAPI_API_KEY}|g' \
  -e 's|/v1/dilution-data|/v1/dilution/events|g' \
  -e 's|/v1/dilution-rating|/v1/dilution/score|g' \
  -e 's|/v1/historical-float-pro|/v1/dilution/share-float-history|g' \
  -e 's|/v1/float-outstanding|/v1/dilution/share-float-history|g' \
  -e 's|/v1/reverse-splits|/v1/dilution/reverse-splits|g' \
  -e 's|/v1/nasdaq-compliance|/v1/dilution/nasdaq-compliance|g' \
  src/**/*.{ts,js,py}

# Manual review checklist:
#  - DilutionEntity warrants/convertibles fields -> /v1/dilution/warrants and /v1/dilution/convertibles
#  - /v1/offerings, /v1/registrations -> /v1/dilution/events with form= filters
#  - /v1/dilution-rating history -> /v1/dilution/ratings (separate from /v1/dilution/score)
#  - /v1/float-outstanding (returns latest entry only) -> /v1/dilution/share-float-history returns the full series; add `&limit=1` (or `?limit=1` if no other params) to your query string to preserve "latest only" semantics
#  - `verified === true` -> verification.confidence >= 0.9 && verification.sourceSpanResolved
```

## Migration notes

* Pin `secapi-version` in production clients before cutover.
* Capture `Request-Id` during dual-run testing so request diagnostics stay comparable across the two providers.
* AskEdgar's `verified: boolean` collapses 6 dimensions into 1. Expect richer per-row metadata on SEC API; build your gating logic around the `verification` block, not a single flag.
* AskEdgar's API is metered per-KB; SEC API's is per-call. For payload-heavy workloads the unit-cost story flips — re-benchmark before locking the pricing tier.
* `askedgar_url` is preserved on every SEC API dilution row, so you can keep a back-link to the AskEdgar Copilot UI if your team wants to dual-source during cutover.

## Recommended cutover order

1. issuer resolution and ticker mapping
2. dilution events list (replaces `/v1/dilution-data`)
3. dilution score and ratings (replaces `/v1/dilution-rating`)
4. share-float history (replaces `/v1/float-outstanding` and `/v1/historical-float-pro`)
5. nasdaq compliance and reverse splits (1:1 replacement)
6. warrants and convertibles split (manual review of the bundled `DilutionEntity` shape)
7. offerings and registrations (replaced by `/v1/dilution/events` with form filters)
8. Use the documented filing and dilution-event routes for a bounded issuer list; SEC API does not provide a replacement for AskEdgar's screener.
9. Delivery webhooks/streams for public events such as `monitor.match`; dilution event fanout is reserved until the producer is public

## Read next

<CardGroup cols={3}>
  <Card title="Compare SEC API and AskEdgar" icon="git-compare-arrows" href="/compare-askedgar">
    Side-by-side feature, schema, and pricing comparison.
  </Card>

  <Card title="Dilution endpoints" icon="square-terminal" href="/api-reference/dilution">
    Open the 14 SEC API dilution routes with realistic examples.
  </Card>

  <Card title="Auth and pricing" icon="key" href="/auth-and-pricing">
    Provision an org-scoped API key and review the PAYG ladder.
  </Card>
</CardGroup>
