Barquant

Stock universe

GET/api/v1/families/us-equities/universe/catalog

Every listed US stock with its name, sector, industry, country, and market cap, plus the members of every sector and industry, in one call. Pro and Unlimited.

Description

Returns the whole stock universe: one entry per ticker, then one entry per sector and industry listing its members from the largest market cap down. Ticker entries carry name, sector, industry, the matching SECTOR: and INDUSTRY: keys, the sector ETF (XLK through XLU), market cap in USD, country, IPO year, commonEquity (false for ETFs, funds, warrants, rights, units, preferred shares, and notes), and classificationSource: primary (the company list classification), profile (the company’s own profile, for names the list misses), fallback (secondary labels, used only in an emergency), or unclassified (no operating sector, mostly ETFs, funds, preferreds, and warrants, which stay listed under Unknown). They also carry lastSale, netChange, pctChange, and volume as of the last refresh; these are not live quotes. The universe refreshes once a week; refreshed_at says when. Filter with kind=ticker,sector,industry, sector=, or industry= (names or keys, comma-separated). format=csv returns the same universe as a CSV file with the columns Symbol, Name, Last Sale, Net Change, % Change, Market Cap, Country, IPO Year, Volume, Sector, and Industry, followed by classificationSource, commonEquity, and sectorEtf (and sourceIndustry, the original industry name, when an industry was folded into Others). An industry with fewer than 5 common stocks is not a peer group: its stocks are listed under the industry Others (INDUSTRY:others), keep their own ratings, and still count in their sector. INDUSTRY:others has no P/E, rating, chart, or statements of its own; it is served with available false and reason others-not-a-group, and the industry keys it replaced resolve to it (named in aliases). Look up keys instead: GET /api/v1/families/us-equities/universe/symbols?symbols=AAPL,SECTOR:technology (max 500), POST the same path with {"symbols": [...]} for up to 5,000, or GET /api/v1/families/us-equities/universe/symbols/{key} for one. Keys are listed tickers (AAPL, BRK.B becomes BRK-B), SECTOR:name, or INDUSTRY:name. Names normalize like valuation keys (sector:Consumer Discretionary becomes SECTOR:consumer-discretionary, Oil & Gas E&P becomes oil-gas-e-p). Sector and industry names follow the current classification (for example SECTOR:consumer-discretionary, SECTOR:consumer-staples, SECTOR:communication, SECTOR:finance, INDUSTRY:software-infrastructure). Earlier sector keys still work: SECTOR:consumer-cyclical, SECTOR:consumer-defensive, SECTOR:communication-services, SECTOR:financial-services, and SECTOR:telecommunications return the current sector. Earlier industry keys work where one successor holds most of the old group. The response lists each one under aliases. With asof, a sector is answered under the name that day used. Retired keys return 404 with a hint. Full table: GET /api/v1/families/us-equities/fundamentals/groups/aliases. Unknown keys come back null.

Authentication

v1 is client_id plus client_secret on every protected GET. A browser session is not enough. Google sign-in is for the website only — do not send a session cookie to v1.

  • HTTP Basic — Authorization: Basic base64(client_id:client_secret)
  • Headers — X-Client-Id and X-Client-Secret

Create or rotate credentials on Account. Full notes are on Authentication.

Path parameters

This path has no parameters.

Query parameters

ParameterInTypeRequiredDescription
kindquerystringNoComma-separated ticker, sector, industry. Default all three.
sectorquerystringNoOnly tickers in these sectors, and only those sector entries. Example: technology or SECTOR:healthcare.
industryquerystringNoOnly tickers in these industries, and only those industry entries. Example: semiconductors.
formatquery"json" | "csv"Nocsv returns the whole universe as one CSV file. Cannot be combined with kind, sector, or industry.

Example request

curl -sS -u "$CLIENT_ID:$CLIENT_SECRET" \
  https://barquant.dev/api/v1/families/us-equities/universe/catalog?sector=technology

Response attributes

FieldTypeDescription
familystringAlways us-equities-universe.
as_ofstring | nullDay of the last refresh, YYYY-MM-DD.
refreshed_atstring | nullWhen the universe was last refreshed.
countnumberEntries in symbols.
symbolsobjectTickers first, then SECTOR: and INDUSTRY: keys.
symbols[ticker].kind"ticker"A listed US stock.
symbols[ticker].namestring | nullCompany and share class name.
symbols[ticker].sectorstringSector name. Unknown when not classified.
symbols[ticker].industrystringIndustry name. Unknown when not classified; Others when its industry has fewer than 5 common stocks.
symbols[ticker].sourceIndustrystringThe original industry name. Differs from industry only for stocks listed under Others (sourceIndustryKey is its key).
symbols[ticker].sectorKeystringSECTOR: key, the same one valuation and sector fundamentals use. Also industryKey.
symbols[ticker].marketCapnumber | nullMarket cap in USD at the last refresh.
symbols[ticker].countrystring | nullCountry of the issuer.
symbols[ticker].ipoYearnumber | nullYear of the listing, when known.
symbols[ticker].lastSalenumber | nullPrice at the last refresh. Also netChange, pctChange, and volume. Not live.
symbols[ticker].commonEquitybooleanfalse for ETFs, funds, warrants, rights, units, preferred shares, notes, and debentures.
symbols[ticker].classificationSource"primary" | "profile" | "fallback" | "unclassified"Where sector and industry came from. unclassified names sit in the Unknown sector and industry.
symbols[ticker].sectorEtfstring | nullSector ETF for the sector (XLK through XLU), when there is one.
symbols[group].kind"sector" | "industry"What the key names.
symbols[group].namestringSector or industry name.
symbols[group].etfstring | nullSector ETF, or SMH for INDUSTRY:semiconductors; null otherwise.
symbols[group].countnumberMembers in the group.
symbols[group].groupedbooleanfalse only for INDUSTRY:others, a list of stocks from small industries rather than a peer group (reason others-not-a-group).
symbols[group].reasonstring | nullothers-not-a-group on INDUSTRY:others; null otherwise.
symbols[group].foldedIndustriesobject[]INDUSTRY:others only: each industry listed under it, with key, name, sectors, and members. Empty on every other group.
symbols[group].membersBySectorobject | nullINDUSTRY:others only: its members by sector key (SECTOR:name to tickers, largest market cap first). Null on every other group.
symbols[group].membersstring[]Every member ticker, largest market cap first. Valuation and sector fundamentals use up to 25 of the largest common-equity members that have financial statements; each of those responses lists its own members in `symbols`.
pendingbooleantrue until the first universe is published.

Sample response

{
  "family": "us-equities-universe",
  "as_of": "2026-09-21",
  "refreshed_at": "2026-09-21T21:41:07.000Z",
  "count": 3,
  "symbols": {
    "IBM": {
      "kind": "ticker",
      "symbol": "IBM",
      "name": "International Business Machines Corporation",
      "sector": "Technology",
      "industry": "Information Technology Services",
      "sectorKey": "SECTOR:technology",
      "industryKey": "INDUSTRY:information-technology-services",
      "marketCap": 175600000000,
      "country": "US",
      "ipoYear": null,
      "lastSale": 188.42,
      "netChange": 1.22,
      "pctChange": 0.652,
      "volume": 3881100,
      "commonEquity": true,
      "classificationSource": "primary",
      "sectorEtf": "XLK"
    },
    "NVDA": {
      "kind": "ticker",
      "symbol": "NVDA",
      "name": "NVIDIA Corporation",
      "sector": "Technology",
      "industry": "Semiconductors",
      "sectorKey": "SECTOR:technology",
      "industryKey": "INDUSTRY:semiconductors",
      "marketCap": 4285000000000,
      "country": "US",
      "ipoYear": 1999,
      "lastSale": 175.9,
      "netChange": -2.31,
      "pctChange": -1.296,
      "volume": 190331215,
      "commonEquity": true,
      "classificationSource": "primary",
      "sectorEtf": "XLK"
    },
    "SECTOR:technology": {
      "kind": "sector",
      "key": "SECTOR:technology",
      "name": "Technology",
      "etf": "XLK",
      "count": 2,
      "members": [
        "NVDA",
        "IBM"
      ]
    }
  },
  "pending": false
}

Errors

StatusWhen
400symbols is missing or over the key limit, kind is not ticker, sector, or industry, or format=csv is combined with a filter.
401Missing or wrong client_id / client_secret.
403Authenticated, but this plan does not include the stock universe. It starts on Pro.
404The single-key path names a ticker, sector, or industry that is not in the universe.
429Daily quota or per-minute plan quota. Read Retry-After and X-RateLimit-* headers.

401 body:

{
  "error": "Unauthorized"
}

403 body:

{
  "error": "This plan does not include that family.",
  "plan": "basic",
  "requiredPlan": "pro"
}

429 body (per-minute / daily):

{
  "error": "Too many requests."
}

Plan access

Pro and Unlimited. Free and Basic receive 403. Every request counts as one API request against the plan quota, however many tickers it returns.

Daily and per-minute quotas live on Plans and limits.

© 2026–2035 Barquant

Stock universe · Barquant