NewConnect Claude, Gemini, ChatGPT, and other AI agents to API Ninjas via our MCP server

Short Interest API

The Short Interest API returns official US short interest as reported to FINRA under Rule 4560 — covering more than 22,000 exchange-listed and OTC equity securities, with history back to December 2017.

FINRA publishes how many shares are short, but never what that is a share of. Every record here is enriched with the join FINRA does not do: short_percent_outstanding (exact, from the company's SEC cover page), short_percent_float, dollar_volume_short, and percentile_2y — where the current reading sits in that stock's own two-year range, which is what tells you whether 12% is actually high.

Short interest is bi-weekly, not daily: positions settle on the 15th and the last business day of each month, and FINRA publishes on the seventh business day after. For something that moves every day, see daily short volume and fails-to-deliver.

For related ownership and filing data see the Insider Trading API, Institutional Holdings API and SEC API.

Online
(4.6)

From 4,491 users

1,900+

Applications using this API

API Status

Online - All Systems Operational

API Response Times

Average
P50
P75
P90
P95
304ms341ms389ms556ms1048ms

Didn't find what you were looking for? Suggest an improvement

https://api.api-ninjas.com/v1/shortinterest

Returns the latest bi-weekly short interest for a security, plus history. Free plans get the latest settlement date including the exact short_percent_outstanding; premium plans add percent of float, dollar notional short, the two-year percentile, split-adjusted history and the full archive back to December 2017.

Parameters

  • ticker  required

    The stock or ETF ticker symbol (for example GME).

  • settlement_date  optional

    Return one specific settlement date, in YYYY-MM-DD format. Short interest settles on the 15th and the last business day of each month.

  • limit  optional

    Number of historical settlement dates to return, from 1 to 200. Defaults to 12. Free plans are limited to the latest date.

Response

A JSON object with the following fields, or an error if the request is unsuccessful.

Response fields
  • ticker

    The security's ticker symbol.

  • name

    The issue name as reported by FINRA.

  • exchange

    Listing venue: NYSE, NNM (Nasdaq National Market), SC (Nasdaq SmallCap), ARCA, BZX, AMEX, IEX or OTC.

  • cik

    The company's SEC Central Index Key, when the security maps to an SEC filer.

  • sector

    Sector classification. Null for securities with no classification, such as many trusts and warrants.

  • industry

    Industry classification.

  • settlement_date

    The date the position was measured — the 15th or the last business day of a month.

  • shares_short

    Shares sold short and not yet covered, as reported to FINRA.

  • previous_shares_short

    The prior settlement date's short position.

  • change

    Change in shares short since the prior settlement date.

  • change_percent

    Percent change in shares short since the prior settlement date.

  • average_daily_volume

    Average daily trading volume used by FINRA to compute days to cover.

  • days_to_cover

    Shares short divided by average daily volume, also called the short ratio. Null when average daily volume is zero and the ratio is undefined — FINRA encodes that case as 999.99, which this API never returns.

  • shares_outstanding

    Total shares outstanding from the company's SEC cover page, resolved to the value in effect at this settlement date.

  • shares_outstanding_as_of

    The cover-page date of the share count used.

  • short_percent_outstanding

    Shares short as a percent of shares outstanding. Exact.

  • float_shares

    Estimated public float in shares. Premium.

  • short_percent_float

    Shares short as a percent of estimated public float. Estimated, not reported — the SEC discloses float as a dollar amount once a year, so a share count is always derived. Premium.

  • float_estimated

    Always true, for the reason above. Premium.

  • float_as_of

    The date the filer measured public float. Premium.

  • float_price_gap_days

    Days between the float measurement date and the price used to convert dollars into shares. 0 is an exact-date conversion; larger values are less precise. Filter on this when accuracy matters. Premium.

  • float_is_capped

    true when the derived float exceeded shares outstanding and was clamped to it. On these rows short_percent_float is a floor, not a measurement, and equals short_percent_outstanding. Premium.

  • close_price

    Price near the settlement date, from SEC fails-to-deliver filings. Fit for scaling a share count into dollars; not a quote. Premium.

  • price_date

    The date of the price used. Premium.

  • price_source

    Source of the price. Currently sec_ftd. Premium.

  • dollar_volume_short

    Notional value of the short position in US dollars. Premium.

  • percentile_2y

    Where this reading sits in the stock's own trailing two-year range, 0–100. Answers whether a given percentage is high for this stock. Null until a security has at least six prior observations. Premium.

  • shares_short_split_adjusted

    Shares short rescaled onto today's share basis so multi-year history stays comparable across splits. Premium.

  • is_revision

    true when FINRA restated this settlement date after initial publication.

  • had_split

    true when FINRA flagged a stock split affecting this record.

  • history

    Array of prior settlement-date records, each with the same fields. Premium.

  • next_settlement_date

    The next date a position will be measured.

  • next_publication_date

    When that reading becomes available — schedule against this instead of polling.

  • source

    Data provenance statement.

Live Demo

Live demo · no API key required
Query parameters
ticker

Get a free API key to get started — no credit card required.

Headers
X-Api-KeyLog in or sign up to get your API key
GET
https://api.api-ninjas.com/v1/shortinterest?ticker=GME
Sample response
{
"ticker": "GME",
"name": "GameStop Corp. Class A",
"exchange": "NYSE",
"cik": "0001326380",
"sector": "Technology",
"industry": "Computer Hardware",
"settlement_date": "2026-07-31",
"shares_short": 53736062,
"previous_shares_short": 55426276,
"change": -1690214,
"change_percent": -3.05,
"average_daily_volume": 3150012,
"days_to_cover": 17.06,
"shares_outstanding": 448691257,
"short_percent_outstanding": 11.9762,
"float_shares": 400890868,
"short_percent_float": 13.4042,
"float_estimated": true,
"float_is_capped": false,
"float_as_of": "2025-08-02",
"float_price_gap_days": 1,
"shares_outstanding_as_of": "2026-06-05",
"close_price": 22.16,
"price_date": "2026-07-29",
"price_source": "sec_ftd",
"dollar_volume_short": 1190791133,
"percentile_2y": 43.75,
"shares_short_split_adjusted": 53736062,
"is_revision": false,
"had_split": false,
"history": [
{
"settlement_date": "2026-07-31",
"shares_short": 53736062,
"previous_shares_short": 55426276,
"change": -1690214,
"change_percent": -3.05,
"average_daily_volume": 3150012,
"days_to_cover": 17.06,
"shares_outstanding": 448691257,
"short_percent_outstanding": 11.9762,
"float_shares": 400890868,
"short_percent_float": 13.4042,
"float_estimated": true,
"float_is_capped": false,
"float_as_of": "2025-08-02",
"float_price_gap_days": 1,
"shares_outstanding_as_of": "2026-06-05",
"close_price": 22.16,
"price_date": "2026-07-29",
"price_source": "sec_ftd",
"dollar_volume_short": 1190791133,
"percentile_2y": 43.75,
"shares_short_split_adjusted": 53736062,
"is_revision": false,
"had_split": false
},
{
"settlement_date": "2026-07-15",
"shares_short": 55426276,
"previous_shares_short": 55856110,
"change": -429834,
"change_percent": -0.77,
"average_daily_volume": 3433961,
"days_to_cover": 16.14,
"shares_outstanding": 448691257,
"short_percent_outstanding": 12.3529,
"float_shares": 400890868,
"short_percent_float": 13.8258,
"float_estimated": true,
"float_is_capped": false,
"float_as_of": "2025-08-02",
"float_price_gap_days": 1,
"shares_outstanding_as_of": "2026-06-05",
"close_price": 22.03,
"price_date": "2026-07-14",
"price_source": "sec_ftd",
"dollar_volume_short": 1221040860,
"percentile_2y": 45.83,
"shares_short_split_adjusted": 55426276,
"is_revision": false,
"had_split": false
}
],
"next_settlement_date": "2026-08-31",
"next_publication_date": "2026-09-10",
"source": "Short interest reported to FINRA under Rule 4560. Share count and public float from SEC EDGAR; prices from SEC fails-to-deliver filings. Share count and float are resolved point-in-time to each settlement date. float_shares and short_percent_float are DERIVED (public float in dollars divided by price) and are estimates, not reported figures."
}

Code Examples

curl -X GET "https://api.api-ninjas.com/v1/shortinterest?ticker=GME" \ -H "X-Api-Key: YOUR_API_KEY"

If your programming language is not listed in the Code Example above, you can still make API calls by using a HTTP request library written in your programming language and following the above documentation.

Business tier and above

https://api.api-ninjas.com/v1/shortinterestscreener

Ranks the entire US equity universe for a settlement date — this is how you find the most shorted stocks. Sort by percent of float, percent of outstanding, days to cover, two-week change, dollar notional short or the two-year percentile, and narrow by sector, exchange, price or size.

Because short percent of float is derived rather than reported, add exclude_capped_float=true and max_float_price_gap_days=7 to restrict a ranking to floats that were actually measured.

Parameters

  • sort_by  optional

    Ranking metric: short_percent_float (default), short_percent_outstanding, days_to_cover, change_percent, dollar_volume_short, percentile_2y or shares_short.

  • order  optional

    desc (default) or asc.

  • settlement_date  optional

    Settlement date in YYYY-MM-DD format. Defaults to the most recently published date.

  • exchange  optional

    Restrict to one venue: NYSE, NNM, SC, ARCA, BZX, AMEX, IEX or OTC.

  • sector  optional

    Restrict to one sector, for example Health Care.

  • min_short_percent_float  optional

    Minimum short percent of float.

  • min_days_to_cover  optional

    Minimum days to cover.

  • min_price  optional

    Minimum share price — useful for excluding sub-dollar names.

  • min_shares_outstanding  optional

    Minimum shares outstanding, a rough size filter.

  • exclude_capped_float  optional

    Set true to drop rows where the derived float was clamped to shares outstanding.

  • max_float_price_gap_days  optional

    Only include rows whose float was converted using a price within this many days of the measurement date.

  • limit  optional

    Number of results, 1 to 100. Defaults to 25.

Response

A JSON object containing the ranked results array, or an error if the request is unsuccessful.

Response fields
  • settlement_date

    The settlement date ranked.

  • sort_by

    The metric used for ranking.

  • order

    Sort direction applied.

  • count

    Number of results returned.

  • results

    Array of securities in ranked order. Each entry carries ticker, name, exchange, sector, industry, shares_short, change_percent, days_to_cover, shares_outstanding, short_percent_outstanding, float_shares, short_percent_float, float_estimated, float_is_capped, close_price, dollar_volume_short and percentile_2y, with the same meanings as on /v1/shortinterest.

Sample response
{
"settlement_date": "2026-07-31",
"sort_by": "short_percent_float",
"order": "desc",
"count": 3,
"results": [
{
"ticker": "OTLK",
"name": "Outlook Therapeutics, Inc. Com",
"exchange": "SC",
"sector": "Health Care",
"industry": "Biotechnology",
"shares_short": 20013892,
"change_percent": 78.04,
"days_to_cover": 1.09,
"shares_outstanding": 120863252,
"short_percent_outstanding": 16.5591,
"float_shares": 20378787,
"short_percent_float": 98.2094,
"float_estimated": true,
"float_is_capped": false,
"close_price": 1,
"dollar_volume_short": 20013892,
"percentile_2y": 100
},
{
"ticker": "CDT",
"name": "CDT Equity Inc. Common Stock",
"exchange": "SC",
"sector": "Health Care",
"industry": "Pharmaceuticals",
"shares_short": 18200,
"change_percent": -90.18,
"days_to_cover": 1,
"shares_outstanding": 6310778,
"short_percent_outstanding": 0.2884,
"float_shares": 19166,
"short_percent_float": 94.9598,
"float_estimated": true,
"float_is_capped": false,
"close_price": 2.68,
"dollar_volume_short": 48776,
"percentile_2y": 83.33
},
{
"ticker": "PPLT",
"name": "abrdn Physical Platinum Shares",
"exchange": "ARCA",
"sector": "Financials",
"industry": "Capital Markets & Exchanges",
"shares_short": 10794161,
"change_percent": -24.27,
"days_to_cover": 6.49,
"shares_outstanding": 13600000,
"short_percent_outstanding": 79.3688,
"float_shares": 11450000,
"short_percent_float": 94.2721,
"float_estimated": true,
"float_is_capped": false,
"close_price": 14.59,
"dollar_volume_short": 157486808,
"percentile_2y": 62.5
}
]
}

https://api.api-ninjas.com/v1/shortvolume

Daily Reg SHO short sale volume — the portion of a day's off-exchange volume flagged as short sales. Updated every trading day, so it moves between the bi-weekly short interest readings.

This is not short interest, and not a percent of total market volume. FINRA covers only trades reported to its Trade Reporting Facilities, roughly 35–52% of consolidated volume. A ratio near 50% is normal: it mostly reflects wholesalers filling retail buy orders from inventory, which books as a short sale.

Parameters

  • ticker  required

    The stock or ETF ticker symbol (for example GME).

  • limit  optional

    Number of trading days to return, 1 to 250. Defaults to 30. Free plans are limited to the latest day.

Response

A JSON object with the following fields, or an error if the request is unsuccessful.

Response fields
  • ticker

    The security's ticker symbol.

  • latest

    The most recent trading day, containing date, short_volume, short_exempt_volume, total_volume, short_volume_ratio and markets.

  • short_volume

    Shares sold short that day, across FINRA Trade Reporting Facilities only.

  • short_exempt_volume

    Short sale volume exempt from the Reg SHO price test.

  • total_volume

    Total off-exchange volume reported to FINRA that day. This is not consolidated market volume — it is roughly 35–52% of it.

  • short_volume_ratio

    short_volume as a percent of total_volume. A share of off-exchange volume, not of total volume.

  • markets

    Reporting facilities that contributed, e.g. B,Q,N for the Nasdaq Carteret, Nasdaq Chicago and NYSE TRFs, or O for the OTC Reporting Facility.

  • average_short_volume_ratio_20d

    Mean ratio over the last 20 trading days — a baseline to read today's figure against, since a single day in isolation says little.

  • history

    Array of prior trading days with the same fields. Premium.

Sample response
{
"ticker": "GME",
"latest": {
"date": "2026-08-21",
"short_volume": 1335397,
"short_exempt_volume": 1355,
"total_volume": 2315275,
"short_volume_ratio": 57.6777,
"markets": "B,Q,N"
},
"average_short_volume_ratio_20d": 63.3483,
"note": "Short volume is the portion of OFF-EXCHANGE (FINRA TRF-reported) daily volume flagged as short sales — not the outstanding short position, and not a percentage of total market volume. FINRA TRF volume is roughly 35-52% of consolidated tape volume. A ratio near 50% is normal and mostly reflects wholesalers filling retail buy orders from inventory, which books as a short sale. Use /v1/shortinterest for actual short positions.",
"history": [
{
"date": "2026-08-21",
"short_volume": 1335397,
"short_exempt_volume": 1355,
"total_volume": 2315275,
"short_volume_ratio": 57.6777,
"markets": "B,Q,N"
},
{
"date": "2026-08-20",
"short_volume": 1279030,
"short_exempt_volume": 9923,
"total_volume": 2361079,
"short_volume_ratio": 54.1714,
"markets": "B,Q,N"
}
]
}

https://api.api-ninjas.com/v1/failstodeliver

Shares that did not settle on the contractual settlement date, published semi-monthly by the SEC. Persistent, large fails are the closest public signal to naked shorting.

Note: a security is listed only on dates it actually had a settlement failure, so an absent date means no material fails rather than no data.

Parameters

  • ticker  required

    The stock or ETF ticker symbol (for example GME).

  • limit  optional

    Number of records to return, 1 to 250. Defaults to 30. Free plans are limited to the latest record.

Response

A JSON object with the following fields, or an error if the request is unsuccessful.

Response fields
  • ticker

    The security's ticker symbol.

  • latest

    The most recent record, containing settlement_date, cusip, name, quantity_failed, price and dollar_value.

  • quantity_failed

    Shares that did not settle on the contractual settlement date.

  • price

    Closing price associated with the fail record.

  • dollar_value

    quantity_failed multiplied by price, so fails are comparable across share prices.

  • trailing_12m

    Aggregate over the last year: days_with_fails, peak_quantity_failed and average_quantity_failed. A single fail is noise; a run of them is the signal. Premium.

  • history

    Array of prior fail records with the same fields. Premium.

  • source

    Data provenance statement.

Sample response
{
"ticker": "GME",
"latest": {
"settlement_date": "2026-07-29",
"cusip": "36467W109",
"name": "GAMESTOP CORP (HLDG CO) CL A",
"quantity_failed": 142,
"price": 22.16,
"dollar_value": 3146
},
"source": "Fails-to-deliver data published by the U.S. Securities and Exchange Commission (public domain). A security appears only on dates when it had a CNS settlement failure.",
"history": [
{
"settlement_date": "2026-07-29",
"cusip": "36467W109",
"name": "GAMESTOP CORP (HLDG CO) CL A",
"quantity_failed": 142,
"price": 22.16,
"dollar_value": 3146
},
{
"settlement_date": "2026-07-28",
"cusip": "36467W109",
"name": "GAMESTOP CORP (HLDG CO) CL A",
"quantity_failed": 42,
"price": 21.52,
"dollar_value": 903
}
],
"trailing_12m": {
"days_with_fails": 157,
"peak_quantity_failed": 2068490,
"average_quantity_failed": 85738
}
}

https://api.api-ninjas.com/v1/shortinterestcalendar

Settlement dates, member reporting deadlines and FINRA publication dates. Short interest changes only 24 times a year, so this lets you schedule refreshes instead of polling. Available on every plan, including free.

Parameters

  • year  optional

    Restrict to one calendar year, 2018 onward.

  • upcoming  optional

    Set true to return only future, not-yet-published settlement dates in ascending order.

  • limit  optional

    Number of dates to return, 1 to 120. Defaults to 24 (one year).

Response

A JSON object containing the results array, or an error if the request is unsuccessful.

  • count

    Number of dates returned.

  • settlement_date

    The date on which short positions are measured.

  • reporting_due_date

    When FINRA members must have reported — the second business day after settlement, excluding market holidays.

  • publication_date

    When FINRA publishes the compiled figures — the seventh business day after settlement.

  • is_published

    false for future dates, whose publication_date is therefore a projection.

  • securities_reported

    Number of securities in the published file. Null until the date is published.

Sample response
{
"count": 2,
"results": [
{
"settlement_date": "2026-08-31",
"reporting_due_date": "2026-09-02",
"publication_date": "2026-09-10",
"is_published": false,
"securities_reported": null
},
{
"settlement_date": "2026-09-15",
"reporting_due_date": "2026-09-17",
"publication_date": "2026-09-24",
"is_published": false,
"securities_reported": null
}
],
"note": "Short interest settles on the 15th and the last business day of each month. FINRA members report by the second business day after settlement; FINRA publishes on the seventh."
}

Frequently Asked Questions

  • Yes, but you must have a premium subscription. Commercial use of the Short Interest API is not permitted on the free tier. See our pricing page to choose a plan that fits your needs.
  • Sign up for a free account to instantly get your API key, then pass it in the X-Api-Key header on every request. The documentation above includes ready-to-run examples in cURL, Python, JavaScript, Node.js, and more.
  • Your API requests will simply be denied once you hit your monthly quota — you will never be charged more than the plan you signed up for. To increase your quota, you can upgrade your plan any time on our pricing page.
  • The API responds with a standard HTTP status code and a JSON error message describing the problem. See our error codes reference for the full list of codes and how to resolve each one, or contact support if you need help.
  • The Short Interest API returns official US short interest as reported to FINRA under Rule 4560, covering over 22,000 exchange-listed and OTC equity securities with history back to December 2017. Each settlement-date record includes shares_short, previous_shares_short, change_percent, average_daily_volume and days_to_cover, enriched with data FINRA does not publish: short_percent_outstanding and short_percent_float (from SEC filings), dollar_volume_short, and percentile_2y — where the current reading sits in that stock's own two-year range. Related endpoints cover daily short volume and fails-to-deliver.
  • Short interest is bi-weekly — 24 times a year, not daily. Positions settle on the 15th and the last business day of each month; FINRA members report by the second business day after settlement, and FINRA publishes on the seventh business day. That means a reading is roughly 11 to 13 calendar days old when it becomes available, and up to three weeks old just before the next one lands. The /v1/shortinterestcalendar endpoint returns every settlement, reporting and publication date so you can schedule refreshes instead of polling, and every response carries next_publication_date. For something that moves daily, use /v1/shortvolume.
  • Yes. Create a free account for an instant API key. The free tier returns the latest settlement date including shares_short, days_to_cover and the exact short_percent_outstanding. Premium plans unlock short percent of float, dollar notional short, the two-year percentile, split-adjusted history, and the full archive back to 2017. The settlement calendar endpoint is free on every plan. One key works across every API Ninjas endpoint.
  • They measure different things and are easy to confuse. Short interest is the outstanding short position — shares sold short and not yet covered — reported twice a month. Short volume is the portion of a single day's executed volume flagged as short sales, published daily. Crucially, FINRA's short volume covers only off-exchange trades reported to its Trade Reporting Facilities, which is roughly 35-52% of consolidated market volume, so the ratio is a share of off-exchange volume and not of total volume. A ratio near 50% is normal: it mostly reflects wholesalers filling retail buy orders from inventory, which books as a short sale. Use /v1/shortinterest for actual positions.
  • Use /v1/shortinterestscreener, which ranks the entire universe for a settlement date. Sort by short_percent_float, short_percent_outstanding, days_to_cover, change_percent, dollar_volume_short or percentile_2y, and filter by sector, exchange, min_price or min_shares_outstanding. The screener requires a Business plan or higher.
  • Short percent of outstanding is exact — it divides the FINRA short position by the share count on the company's SEC cover page. Short percent of float is an estimate: the SEC discloses public float as a dollar amount once a year, so we convert it to shares using a price near the measurement date. Every row therefore carries float_estimated, float_as_of and float_price_gap_days (0 means an exact-date conversion), plus float_is_capped when the derived float had to be clamped to shares outstanding. Roughly 78% of conversions use a price within three days. Coverage is limited by SEC tagging: about 27% of securities have a share count and 22% a float, while core FINRA fields cover 100%.