Endpoints
/v1/shares-outstanding
GEThttps://secfeedapi.com/v1/shares-outstanding
Shares outstanding and public float over time.
| Parameter | Type | Description | Example |
|---|
ticker | string | Ticker. One of ticker or cik is required. | TSLA |
cik | integer | Company CIK. | 320193 |
- Public float is reported once a year in the 10-K, so it has fewer points than shares outstanding.
- Values are as reported, so stock splits show up as jumps.
Request examples
Every response below is real output from the API, trimmed to the first records.
Tesla share count and float
asOf is the date the count refers to; filedAt is when the filing was made.
curl -H "Authorization: Bearer $SECFEED_KEY" \
"https://secfeedapi.com/v1/shares-outstanding?ticker=TSLA"
import os, requests
r = requests.get(
"https://secfeedapi.com/v1/shares-outstanding",
params={'ticker': 'TSLA'},
headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
timeout=60,
)
r.raise_for_status()
print(r.json()){
"cik": 1318605,
"outstandingShares": [
{
"value": 3949547394,
"asOf": "2026-07-16",
"form": "10-Q",
"accessionNo": "0001628280-26-049270",
"filedAt": "2026-07-23"
},
{
"value": 3752431984,
"asOf": "2026-01-23",
"form": "10-K/A",
"accessionNo": "0001104659-26-053166",
"filedAt": "2026-04-30"
}
],
"publicFloat": [
{
"value": 550170000000,
"asOf": "2024-06-28",
"form": "10-K/A",
"accessionNo": "0001104659-26-053166",
"filedAt": "2026-04-30"
},
{
"value": 892930000000,
"asOf": "2025-06-30",
"form": "10-K",
"accessionNo": "0001628280-26-003952",
"filedAt": "2026-01-29"
}
]
}Apple by CIK
History runs back to the first XBRL filings around 2009.
curl -H "Authorization: Bearer $SECFEED_KEY" \
"https://secfeedapi.com/v1/shares-outstanding?cik=320193"
import os, requests
r = requests.get(
"https://secfeedapi.com/v1/shares-outstanding",
params={'cik': '320193'},
headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
timeout=60,
)
r.raise_for_status()
print(r.json()){
"cik": 320193,
"outstandingShares": [
{
"value": 14594180000,
"asOf": "2026-07-17",
"form": "10-Q",
"accessionNo": "0000320193-26-000020",
"filedAt": "2026-07-31"
},
{
"value": 14687356000,
"asOf": "2026-04-17",
"form": "10-Q",
"accessionNo": "0000320193-26-000013",
"filedAt": "2026-05-01"
}
],
"publicFloat": [
{
"value": 3253431000000,
"asOf": "2025-03-28",
"form": "10-K",
"accessionNo": "0000320193-25-000079",
"filedAt": "2025-10-31"
},
{
"value": 2628553000000,
"asOf": "2024-03-29",
"form": "10-K",
"accessionNo": "0000320193-24-000123",
"filedAt": "2024-11-01"
}
]
}Apple by ticker
The same data, looked up by ticker.
curl -H "Authorization: Bearer $SECFEED_KEY" \
"https://secfeedapi.com/v1/shares-outstanding?ticker=AAPL"
import os, requests
r = requests.get(
"https://secfeedapi.com/v1/shares-outstanding",
params={'ticker': 'AAPL'},
headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
timeout=60,
)
r.raise_for_status()
print(r.json()){
"cik": 320193,
"outstandingShares": [
{
"value": 14594180000,
"asOf": "2026-07-17",
"form": "10-Q",
"accessionNo": "0000320193-26-000020",
"filedAt": "2026-07-31"
},
{
"value": 14687356000,
"asOf": "2026-04-17",
"form": "10-Q",
"accessionNo": "0000320193-26-000013",
"filedAt": "2026-05-01"
}
],
"publicFloat": [
{
"value": 3253431000000,
"asOf": "2025-03-28",
"form": "10-K",
"accessionNo": "0000320193-25-000079",
"filedAt": "2025-10-31"
},
{
"value": 2628553000000,
"asOf": "2024-03-29",
"form": "10-K",
"accessionNo": "0000320193-24-000123",
"filedAt": "2024-11-01"
}
]
}Response fields
| Field | Type | Meaning |
|---|
cik | integer | Company CIK. |
outstandingShares[].value | integer | Shares outstanding. |
outstandingShares[].asOf | string | Date of the count. |
outstandingShares[].form / accessionNo / filedAt | string | Filing that reported it. |
publicFloat[].value | integer | Public float in dollars. |
publicFloat[].asOf | string | Date the float was measured (end of the second fiscal quarter). |
publicFloat[].form / accessionNo / filedAt | string | Filing that reported it. |
How to
How do I get the latest share count?
Take outstandingShares[0]; the list is newest first.
curl -H "Authorization: Bearer $SECFEED_KEY" \
"https://secfeedapi.com/v1/shares-outstanding?ticker=TSLA"
How do I spot stock splits?
Look for large jumps between consecutive asOf dates.
curl -H "Authorization: Bearer $SECFEED_KEY" \
"https://secfeedapi.com/v1/shares-outstanding?ticker=AAPL"
Why does one date appear twice?
Amendments and multiple share classes can report the same date more than once.
curl -H "Authorization: Bearer $SECFEED_KEY" \
"https://secfeedapi.com/v1/shares-outstanding?ticker=AAPL"
How is public float measured?
In dollars, as of the last business day of the second fiscal quarter, reported in the 10-K.
curl -H "Authorization: Bearer $SECFEED_KEY" \
"https://secfeedapi.com/v1/shares-outstanding?ticker=TSLA"
Can I use a CIK?
Yes, pass cik.
curl -H "Authorization: Bearer $SECFEED_KEY" \
"https://secfeedapi.com/v1/shares-outstanding?cik=320193"
Where does the data come from?
The dei cover page facts EntityCommonStockSharesOutstanding and EntityPublicFloat.
curl -H "Authorization: Bearer $SECFEED_KEY" \
"https://secfeedapi.com/v1/xbrl/company-concept?ticker=AAPL&concept=EntityCommonStockSharesOutstanding&taxonomy=dei"
How do I get shares for every company at one date?
Use the XBRL frames API with the dei tag.
curl -H "Authorization: Bearer $SECFEED_KEY" \
"https://secfeedapi.com/v1/xbrl/frames?concept=EntityCommonStockSharesOutstanding&period=CY2025Q4I&unit=shares&taxonomy=dei"
What about companies without XBRL?
They return empty lists; XBRL cover facts start around 2009 to 2011.
curl -H "Authorization: Bearer $SECFEED_KEY" \
"https://secfeedapi.com/v1/shares-outstanding?ticker=TSLA"
Errors
See also the error codes every endpoint shares.