Home / Developers / Dilution API
API reference

Dilution API

A company's share count and dilution history from its XBRL filings: authorized, issued and outstanding shares, treasury stock, basic and diluted weighted shares, stock based compensation, equity plan capacity and buybacks. Product overview →

Endpoints

/v1/equity-dilution

GEThttps://secfeedapi.com/v1/equity-dilution

Shares authorized, issued, outstanding, treasury, basic vs diluted, stock comp, buybacks, equity plan capacity.

ParameterTypeDescriptionExample
tickerstringCompany ticker. Pass ticker or cik.AAPL
cikintegerCompany CIK. Pass ticker or cik.320193

Request examples

Every response below is real output from the API, trimmed to the first records.

Dilution profile of a company

dilutionPct compares the latest diluted and basic weighted share counts.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/equity-dilution?ticker=AAPL"
import os, requests

r = requests.get(
    "https://secfeedapi.com/v1/equity-dilution",
    params={'ticker': 'AAPL'},
    headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
    timeout=60,
)
r.raise_for_status()
print(r.json())
{
  "cik": 320193,
  "dilutionPct": 0.393,
  "sharesAuthorized": [
    {
      "value": 50400000000,
      "periodEnd": "2026-06-27",
      "periodStart": null,
      "form": "10-Q",
      "accessionNo": "0000320193-26-000020"
    },
    {
      "value": 50400000000,
      "periodEnd": "2026-03-28",
      "periodStart": null,
      "form": "10-Q",
      "accessionNo": "0000320193-26-000013"
    }
  ],
  "sharesIssued": [
    {
      "value": 14608963000,
      "periodEnd": "2026-06-27",
      "periodStart": null,
      "form": "10-Q",
      "accessionNo": "0000320193-26-000020"
    },
    {
      "value": 14667688000,
      "periodEnd": "2026-03-28",
      "periodStart": null,
      "form": "10-Q",
      "accessionNo": "0000320193-26-000013"
    }
  ],
  "sharesOutstanding": [
    {
      "value": 14608963000,
      "periodEnd": "2026-06-27",
      "periodStart": null,
      "form": "10-Q",
      "accessionNo": "0000320193-26-000020"
    },
    {
      "value": 14667688000,
      "periodEnd": "2026-03-28",
      "periodStart": null,
      "form": "10-Q",
      "accessionNo": "0000320193-26-000013"
    }
  ],
  "dilutedWeightedShares": [
    {
      "value": 14750302000,
      "periodEnd": "2026-06-27",
      "periodStart": "2025-09-28",
      "form": "10-Q",
      "accessionNo": "0000320193-26-000020"
    },
    {
  ...

Another company

Compare sharesOutstanding over time to see the effect of buybacks and splits.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/equity-dilution?ticker=NVDA"
import os, requests

r = requests.get(
    "https://secfeedapi.com/v1/equity-dilution",
    params={'ticker': 'NVDA'},
    headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
    timeout=60,
)
r.raise_for_status()
print(r.json())
{
  "cik": 1045810,
  "dilutionPct": 0.413,
  "sharesAuthorized": [
    {
      "value": 80000000000,
      "periodEnd": "2026-01-25",
      "periodStart": null,
      "form": "10-K",
      "accessionNo": "0001045810-26-000021"
    },
    {
      "value": 80000000000,
      "periodEnd": "2025-01-26",
      "periodStart": null,
      "form": "10-K",
      "accessionNo": "0001045810-26-000021"
    }
  ],
  "sharesIssued": [
    {
      "value": 24304000000,
      "periodEnd": "2026-01-25",
      "periodStart": null,
      "form": "10-K",
      "accessionNo": "0001045810-26-000021"
    },
    {
      "value": 24477000000,
      "periodEnd": "2025-01-26",
      "periodStart": null,
      "form": "10-K",
      "accessionNo": "0001045810-26-000021"
    }
  ],
  "sharesOutstanding": [
    {
      "value": 24304000000,
      "periodEnd": "2026-01-25",
      "periodStart": null,
      "form": "10-K",
      "accessionNo": "0001045810-26-000021"
    },
    {
      "value": 24477000000,
      "periodEnd": "2025-01-26",
      "periodStart": null,
      "form": "10-K",
      "accessionNo": "0001045810-26-000021"
    }
  ],
  "treasuryShares": [
    {
      "value": 0,
      "periodEnd": "2022-01-30",
      "periodStart": null,
      "form": "10-K",
      "accessionNo": "0001045810-22-000036"
    },
    {
  ...

By CIK

Same response, looked up by CIK.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/equity-dilution?cik=789019"
import os, requests

r = requests.get(
    "https://secfeedapi.com/v1/equity-dilution",
    params={'cik': '789019'},
    headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
    timeout=60,
)
r.raise_for_status()
print(r.json())
{
  "cik": 789019,
  "dilutionPct": 0.323,
  "sharesAuthorized": [
    {
      "value": 24000000000,
      "periodEnd": "2026-06-30",
      "periodStart": null,
      "form": "10-K",
      "accessionNo": "0001193125-26-323660"
    },
    {
      "value": 24000000000,
      "periodEnd": "2026-03-31",
      "periodStart": null,
      "form": "10-Q",
      "accessionNo": "0001193125-26-191507"
    }
  ],
  "sharesIssued": [
    {
      "value": 7427000000,
      "periodEnd": "2026-06-30",
      "periodStart": null,
      "form": "10-K",
      "accessionNo": "0001193125-26-323660"
    },
    {
      "value": 7429000000,
      "periodEnd": "2026-03-31",
      "periodStart": null,
      "form": "10-Q",
      "accessionNo": "0001193125-26-191507"
    }
  ],
  "sharesOutstanding": [
    {
      "value": 7427000000,
      "periodEnd": "2026-06-30",
      "periodStart": null,
      "form": "10-K",
      "accessionNo": "0001193125-26-323660"
    },
    {
      "value": 7429000000,
      "periodEnd": "2026-03-31",
      "periodStart": null,
      "form": "10-Q",
      "accessionNo": "0001193125-26-191507"
    }
  ],
  "dilutedWeightedShares": [
    {
      "value": 7453000000,
      "periodEnd": "2026-06-30",
      "periodStart": "2025-07-01",
      "form": "10-K",
      "accessionNo": "0001193125-26-323660"
    },
    {
  ...

Response fields

FieldTypeMeaning
cikintegerCompany CIK.
dilutionPctnumber or nullLatest diluted over basic weighted shares minus one, in percent.
<series>[]arrayEach series below is a list of up to 12 values, newest period first, one per period end.
<series>[].valuenumberReported value.
<series>[].periodEndstringPeriod end date.
<series>[].periodStartstring or nullPeriod start for duration values, null for point in time values.
<series>[].formstring10-K, 10-Q or 20-F the value comes from.
<series>[].accessionNostringFiling that reported the value.
sharesAuthorizedarrayCommon shares authorized. Omitted when the company does not report it.
sharesIssuedarrayCommon shares issued. Omitted when the company does not report it.
sharesOutstandingarrayCommon shares outstanding. Omitted when the company does not report it.
treasurySharesarrayShares held in treasury. Omitted when the company does not report it.
dilutedWeightedSharesarrayWeighted average diluted shares. Omitted when the company does not report it.
basicWeightedSharesarrayWeighted average basic shares. Omitted when the company does not report it.
stockBasedCompensationarrayShare based compensation (cash flow statement). Omitted when the company does not report it.
stockCompExpensearrayShare based compensation expense recognized. Omitted when the company does not report it.
equityPlanSharesAuthorizedarrayShares authorized under equity plans. Omitted when the company does not report it.
equityPlanSharesAvailablearrayShares still available for grant. Omitted when the company does not report it.
sharesRepurchasedarrayShares repurchased in the period. Omitted when the company does not report it.
sharesIssuedForComparrayShares issued for share based compensation. Omitted when the company does not report it.

Series

KeyMeaning
sharesAuthorizedCommon shares authorized
sharesIssuedCommon shares issued
sharesOutstandingCommon shares outstanding
treasurySharesShares held in treasury
dilutedWeightedSharesWeighted average diluted shares
basicWeightedSharesWeighted average basic shares
stockBasedCompensationShare based compensation (cash flow statement)
stockCompExpenseShare based compensation expense recognized
equityPlanSharesAuthorizedShares authorized under equity plans
equityPlanSharesAvailableShares still available for grant
sharesRepurchasedShares repurchased in the period
sharesIssuedForCompShares issued for share based compensation

How to

How much dilution do options and RSUs add?

dilutionPct is the gap between diluted and basic weighted shares in the latest period.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/equity-dilution?ticker=AAPL"
How do I see share count over time?

Read sharesOutstanding; each entry has a periodEnd.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/equity-dilution?ticker=NVDA"
How many shares are left in the equity plan?

equityPlanSharesAvailable, when the company tags it.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/equity-dilution?ticker=AAPL"
How large is stock based compensation?

stockBasedCompensation is the cash flow add back; stockCompExpense the expense recognized.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/equity-dilution?ticker=AAPL"
How do I see buybacks in shares?

sharesRepurchased lists shares bought back per period where reported.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/equity-dilution?cik=789019"
How close is a company to its authorized limit?

Compare sharesIssued with sharesAuthorized for the same periodEnd.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/equity-dilution?ticker=AAPL"
Why is a series missing?

The company does not tag that XBRL concept; the key is left out rather than returned empty.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/equity-dilution?ticker=NVDA"
Where does a value come from?

accessionNo and form on each entry identify the filing.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/equity-dilution?ticker=AAPL"

Errors

See also the error codes every endpoint shares.

Try it with your own key

500 free calls a month.

Get free API key →