← Docs

Company API

Find a company by name, website, ticker or registration identifier.

Search 500 selected leading U.S. public companies by name, website, ticker or SEC CIK. Get its name, country, website, listings and one recorded address in one response. Try the Company API.

GET
api.parseapi.com/company
Search company profiles
Explore
Parameters 13
qstring · query · optional

Company name or alias text. Use at most one of q, domain, ticker or identifier; without a selector, country or an industry pair is required. Name matches rank by exact name, prefix, then substring. Filter-only results use stable ID order.

Length: 1 to 300 characters

domainstring · query · optional

Website hostname or HTTP(S) URL. Matches the exact normalized host, including subdomains; a conventional www. prefix is removed.

Length: 1 to 4096 characters

tickerstring · query · optional

Exact ticker symbol, case-insensitive. Use exchange to narrow the listing.

Length: 1 to 64 characters

identifierstring · query · optional

SEC CIK as a string, with or without leading zeros. The optional authority is sec.

Length: 1 to 256 characters

countrystring · query · optional

Filter the profile country by ISO 3166-1 alpha-2 code. Case-insensitive.

Pattern: ^[A-Za-z]{2}$

industrystring · query · optional

Exact four-digit SIC industry code. Requires industry_type=sic. Matches recorded classifications only; no inferred classifications or prefix matching.

Pattern: ^[0-9]{4}$

industry_typestring · query · optional

Industry classification namespace. Currently sic; requires industry.

Values: sic

exchangestring · query · optional

Exchange name, case-insensitive. Supported only with ticker.

Length: 1 to 128 characters

authoritystring · query · optional

Identifier authority, case-insensitive. Supported only with identifier.

Length: 1 to 128 characters

Pattern: ^[a-zA-Z0-9][a-zA-Z0-9_.:/-]{0,127}$

limitinteger · query · optional

Maximum companies per page.

Default: 20

Range: 1 to 50

cursorstring · query · optional

Opaque next cursor from the previous response. Keep the selector, filters and limit unchanged. An invalid or expired cursor returns 400; restart the search.

Length: 1 to 1024 characters

deepboolean · query · optional

Add legal name, aliases, jurisdiction, legal entity status, other domains, identifiers, incorporation date, additional addresses, industry classifications, parent and sourced descriptive details inside each profile's deep object. Included on every plan in the same pooled request. Omit or use false for core.

Default: false

prettyboolean · query · optional

Format the JSON response for reading.

Default: false

Run uses the free demo on API 2.0.0. Copied code uses your API key when signed in, or YOUR_API_KEY when signed out.

curl "https://api.parseapi.com/company?domain=microsoft.com" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Parse-Version: 2.0.0"

Run on your server with a secret key. Calling from a browser or app?

Example response
{
  "companies": [
    {
      "id": "co_u5ntnpyvja2a",
      "name": "MICROSOFT CORP",
      "country": "US",
      "website": "https://www.microsoft.com/",
      "listings": [
        {
          "exchange": "Nasdaq",
          "symbol": "MSFT"
        }
      ],
      "address": {
        "type": "business",
        "street": "ONE MICROSOFT WAY",
        "city": "REDMOND",
        "state": "WA",
        "postal": "98052-6399",
        "country": "US"
      },
      "match": {
        "field": "website",
        "value": "microsoft.com"
      }
    }
  ],
  "next": null
}

Find a company with one selector: q for a name, domain for a website, ticker for a listing, or identifier for a SEC CIK. Add country to narrow the company country, exchange with a ticker, or authority with an identifier.

To discover companies, send country=US, an exact industry pair such as industry=7372&industry_type=sic, or both. These filters also narrow a name, domain, ticker or identifier search. Country refers to the recorded profile country; unknown values do not match. SIC codes keep all four digits. Filter-only results have match: { field: "filters", value: null } and use stable ID order.

More searches and pagination

/company?q=Microsoft

/company?ticker=MSFT&exchange=Nasdaq

/company?identifier=0000789019&authority=sec

Name matches rank exact names first, then prefixes and contained matches. Ticker matches include the matched exchange. Identifier matches include type and authority; keep identifier values as strings to preserve leading zeros.

Search returns up to 20 companies. Set limit from 1 to 50. Pass a non-null next as cursor with the same selector, filters and limit. This example retrieves two pages with one company per page.

const url = new URL('https://api.parseapi.com/company?q=Micro&limit=1');
const headers = { 'X-API-Key': 'YOUR_API_KEY', 'Parse-Version': '2.0.0' };
async function readPage() {
  const response = await fetch(url, { headers });
  const data = await response.json();
  if (!response.ok) throw new Error(data.message);
  return data;
}
const first = await readPage();
if (first.next) {
  url.searchParams.set('cursor', first.next);
  const second = await readPage();
  console.log(second.companies);
}

Response fields

companiesarray
Matching company profiles in selector rank order, or stable ID order for filter-only discovery. An empty array means no match in this directory edition
companies[].match.fieldstring
The name, legal_name, aliases, website, domains, listings or identifiers field that matched; filters for country/industry discovery without a selector
companies[].match.valuestring or null
Matched name, normalized domain, ticker or identifier value; null for filter-only discovery
companies[].match.exchangestring
Present for ticker matches: the matched exchange or trading venue label
companies[].match.typestring
Present for identifier matches: the matching identifier type
companies[].match.authoritystring
Present for identifier matches: the matching issuing authority
companies[].deepobject
Additional details on each company when deep=true
nextstring or null
Opaque next-page cursor, or null. Reuse the same selector, filters and limit

Keep the company ID

GET
api.parseapi.com/company/id/{id}
Retrieve one company profile
Explore
Parameters 3
idstring · path · required

Stable company ID returned by search.

Pattern: ^co_[23456789abcdefghjkmnpqrstuvwxyz]{12}$

deepboolean · query · optional

Add legal name, aliases, jurisdiction, legal entity status, other domains, identifiers, incorporation date, additional addresses, industry classifications, parent and sourced descriptive details inside each profile's deep object. Included on every plan in the same pooled request. Omit or use false for core.

Default: false

prettyboolean · query · optional

Format the JSON response for reading.

Default: false

Run uses the free demo on API 2.0.0. Copied code uses your API key when signed in, or YOUR_API_KEY when signed out.

curl "https://api.parseapi.com/company/id/co_u5ntnpyvja2a" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Parse-Version: 2.0.0"

Run on your server with a secret key. Calling from a browser or app?

Example response
{
  "id": "co_u5ntnpyvja2a",
  "name": "MICROSOFT CORP",
  "country": "US",
  "website": "https://www.microsoft.com/",
  "listings": [
    {
      "exchange": "Nasdaq",
      "symbol": "MSFT"
    }
  ],
  "address": {
    "type": "business",
    "street": "ONE MICROSOFT WAY",
    "city": "REDMOND",
    "state": "WA",
    "postal": "98052-6399",
    "country": "US"
  }
}

Store the chosen company's id to retrieve it later. IDs begin with co_ followed by 12 characters; treat them as opaque values. Names, domains and ticker symbols can match more than one company.

website is one recorded URL, or null when no URL is recorded. listings keeps each symbol with its exchange or trading venue label; exchange labels are not standardized MIC codes.

Profile fields

Response fields

idstring
Stable company ID. Store it to retrieve the same profile later
namestring
Primary company name
countrystring or null
Recorded incorporation country as ISO 3166-1 alpha-2, or null. It does not establish headquarters or operations
websitestring or null
Recorded company website URL, or null when unknown
listingsarray
Exchange and ticker pairs. An empty list does not establish private ownership
listings[].exchangestring
Recorded exchange or trading venue label; not a standardized MIC code
listings[].symbolstring
Ticker symbol on that exchange
addressobject or null
One recorded address, or null. Prefers headquarters, then business, registered, mailing; first recorded within a type
address.typestring
Recorded address type: registered, headquarters, business or mailing
address.streetstring or null
Street address, or null
address.citystring or null
City, or null
address.statestring or null
State code within the address country, using the same code format as the geography APIs, or null
address.postalstring or null
Postal code string, or null
address.countrystring or null
ISO 3166-1 alpha-2 address country, or null

Unknown fields are null and unrecorded lists are empty. The default address is a recorded headquarters when available, otherwise a business, registered or mailing address, in that order. Its type tells you which address it is. Street, city and postal values stay as recorded; country and state codes use the same format as the geography APIs. If no address is recorded, address is null.

Additional details with deep

Add deep=true for legal name and status, aliases, registration jurisdiction, identifiers, incorporation date, other associated domains, additional addresses, industry classifications and parent company. deep.addresses contains the remaining recorded addresses without repeating the default address. Deep is included on every plan in the same pooled request. It appears on each company in a search, or on the profile returned by ID. Omit deep or use deep=false for core; an empty deep object means no additional details are available.

deep.status is the recorded legal entity status, not a check of trading activity or website availability. deep.domains contains other associated domains with their recorded URLs, or null when only the domain is known. The domain used by website is not repeated. If website is null, all associated domains remain in Deep.

jurisdiction uses separate country and state codes, consistent with the geography APIs. The state is null when only a registration country is recorded. The company's recorded country can differ from an address's country. parent is the recorded parent company's ID, or null.

Descriptive profiles also include description, a logo URL, social_profiles, founded and sources. Missing values remain null or empty lists; older editions may omit this group. founded preserves a reported year, month or day and is separate from the legal incorporated date. social_profiles contains platform, url and handle; unknown platform or handle values remain null. Logo and social URLs are references; they do not grant rights to reuse assets or verify ownership.

employees gives a reported workforce count, its as_of measurement date, and the legal_entity or consolidated_group scope stated by the source. basis distinguishes headcount, full_time and full_time_equivalent. approximate preserves the source's qualification. Annual filings often describe an earlier workforce. Unknown counts are null, and a reported zero stays zero.

When sourced, phone_numbers and email_addresses contain selected public business contacts. Each record preserves its number or address and a source-reported type, such as support, or null when unknown. These collections are omitted when no contacts are selected. They do not establish reachability, delivery or ownership.

Each sources entry names the company page or SEC filing and the fields it supplied. observed_at records when the source was read. updated_at is its reported update timestamp or null. Employee measurement dates stay in employees.as_of. Website claims do not establish legal identity.

Run uses the free demo on API 2.0.0. Copied code uses your API key when signed in, or YOUR_API_KEY when signed out.

curl "https://api.parseapi.com/company/id/co_u5ntnpyvja2a?deep=true" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Parse-Version: 2.0.0"

Run on your server with a secret key. Calling from a browser or app?

Example response
{
  "id": "co_u5ntnpyvja2a",
  "name": "MICROSOFT CORP",
  "country": "US",
  "website": "https://www.microsoft.com/",
  "listings": [
    {
      "exchange": "Nasdaq",
      "symbol": "MSFT"
    }
  ],
  "address": {
    "type": "business",
    "street": "ONE MICROSOFT WAY",
    "city": "REDMOND",
    "state": "WA",
    "postal": "98052-6399",
    "country": "US"
  },
  "deep": {
    "legal_name": "MICROSOFT CORP",
    "aliases": [],
    "jurisdiction": {
      "country": "US",
      "state": "WA"
    },
    "status": null,
    "domains": [],
    "identifiers": [
      {
        "type": "cik",
        "authority": "sec",
        "value": "0000789019"
      }
    ],
    "incorporated": null,
    "addresses": [
      {
        "type": "mailing",
        "street": "ONE MICROSOFT WAY",
        "city": "REDMOND",
        "state": "WA",
        "postal": "98052-6399",
        "country": "US"
      }
    ],
    "industries": [
      {
        "type": "sic",
        "code": "7372",
        "name": "Services-Prepackaged Software"
      }
    ],
    "parent": null,
    "description": "Microsoft develops software, cloud computing, artificial intelligence, productivity and personal computing products and services.",
    "logo": null,
    "social_profiles": [],
    "founded": null,
    "employees": {
      "count": 223000,
      "as_of": "2026-06-30",
      "scope": "consolidated_group",
      "method": "reported",
      "approximate": true,
      "basis": "full_time"
    },
    "sources": [
      {
        "type": "sec_filing",
        "url": "https://www.sec.gov/Archives/edgar/data/789019/000119312526323660/msft-20260630.htm",
        "observed_at": "2026-09-26T13:14:27.975Z",
        "updated_at": "2026-07-29T20:08:01.000Z",
        "fields": [
          "description",
          "employees"
        ]
      }
    ]
  }
}

Recorded response excerpt for Apple, showing a dated workforce observation and source attribution. Other profile and deep fields are omitted here.

{
  "id": "co_g9puf74dwzwn",
  "deep": {
    "employees": {
      "count": 166000,
      "as_of": "2025-09-27",
      "scope": "consolidated_group",
      "method": "reported",
      "approximate": true,
      "basis": "full_time_equivalent"
    },
    "sources": [
      {
        "type": "sec_filing",
        "url": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/aapl-20250927.htm",
        "observed_at": "2026-09-26T13:14:27.675Z",
        "updated_at": "2025-10-31T10:01:26.000Z",
        "fields": [
          "description",
          "employees"
        ]
      }
    ]
  }
}

Response fields

deep.aliasesarray
Other company names
deep.jurisdictionobject or null
Recorded registration location as country and state codes, or null
deep.jurisdiction.countrystring
Registration country as ISO 3166-1 alpha-2
deep.jurisdiction.statestring or null
State code within the registration country, such as WA, or null
deep.statusstring or null
Recorded legal entity status; does not establish current business activity, website availability or listing status
deep.domainsarray
Other associated domains, excluding the core website hostname. Includes all recorded domains when the core URL is unknown
deep.domains[].domainstring
Associated hostname, normalized to lowercase ASCII without a conventional www. prefix
deep.domains[].urlstring or null
Recorded URL for this domain, or null; never inferred from a domain alone
deep.identifiersarray
Identifiers paired with their type and issuing authority
deep.identifiers[].typestring
SEC identifier type: cik
deep.identifiers[].authoritystring
Issuing authority
deep.identifiers[].valuestring
Identifier string. Preserve leading zeros
deep.incorporatedstring or null
Legal entity incorporation date as YYYY-MM-DD, or null
deep.addressesarray
Other recorded addresses, excluding the address returned in core, in recorded order
deep.addresses[].typestring
Recorded address type: registered, headquarters, business or mailing
deep.addresses[].streetstring or null
Street address, or null
deep.addresses[].citystring or null
City, or null
deep.addresses[].statestring or null
State code within the address country, with the same formatting as the core address, or null
deep.addresses[].postalstring or null
Postal code string, or null
deep.addresses[].countrystring or null
ISO 3166-1 alpha-2 address country, or null
deep.industriesarray
Industry classifications, each with its type and code
deep.industries[].typestring
Classification type, such as sic
deep.industries[].codestring
Industry code string
deep.industries[].namestring or null
Industry name, or null
deep.parentstring or null
Known parent company ID in this directory, or null
deep.descriptionstring or null
Business summary based on company filings, or null
deep.social_profilesarray
Recorded social profiles; empty when none are recorded
deep.social_profiles[].platformstring or null
Social platform, or null when unknown
deep.social_profiles[].urlstring
Recorded HTTP(S) profile URL
deep.social_profiles[].handlestring or null
Recorded account handle, or null when unknown
deep.phone_numbersarray
Selected public business phone numbers; omitted when none are selected
deep.phone_numbers[].numberstring
Source-recorded phone number; no reachability verification
deep.phone_numbers[].typestring or null
Source-reported purpose, such as support, or null when unknown
deep.email_addressesarray
Selected public business email addresses; omitted when none are selected
deep.email_addresses[].addressstring
Source-recorded email address; no delivery verification
deep.email_addresses[].typestring or null
Source-reported purpose, such as support, or null when unknown
deep.foundednull or object
Reported founding date and precision, or null. Separate from legal incorporation
deep.founded.valuestring
YYYY, YYYY-MM or YYYY-MM-DD, matching the recorded precision without invented date components
deep.founded.precisionstring
year, month or day
deep.employeesobject or null
Reported workforce count with its measurement basis, date and organization scope, or null
deep.employees.countinteger
Reported number of employees, including a supported zero
deep.employees.basisstring
headcount, full_time or full_time_equivalent; omitted on older headcount responses
deep.employees.as_ofstring
Explicit measurement date in YYYY-MM-DD form
deep.employees.scopestring
legal_entity or consolidated_group, as supported by the source
deep.employees.methodstring
reported
deep.employees.approximateboolean
Whether the source calls the count approximate
deep.sourcesarray
Attribution for returned business details and workforce observations
deep.sources[].typestring
website or sec_filing
deep.sources[].urlstring
Page that supplied the attributed fields
deep.sources[].fieldsarray
Returned fields supplied by this source: description, logo, social_profiles, founded, employees, phone_numbers or email_addresses
deep.sources[].observed_atstring
When the page was read; not when each company fact changed
deep.sources[].updated_atstring or null
Source-reported update timestamp, or null; never inferred from observed_at or a date without a time
Directory coverage
GET
api.parseapi.com/company/directory/coverage
Coverage and edition details
Explore
Parameters 1
prettyboolean · query · optional

Format the JSON response for reading.

Default: false

Run uses the free demo on API 2.0.0. Copied code uses your API key when signed in, or YOUR_API_KEY when signed out.

curl "https://api.parseapi.com/company/directory/coverage" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Parse-Version: 2.0.0"

Run on your server with a secret key. Calling from a browser or app?

Example response
{
  "scope": "us_public_top500",
  "label": "U.S. public companies",
  "description": "500 selected U.S. public-company issuers. Share classes are grouped by issuer; this is not complete U.S. business coverage.",
  "snapshot_at": "2026-09-26T13:45:47.339Z",
  "companies": 500,
  "countries": [
    "BM",
    "CH",
    "CW",
    "IE",
    "JE",
    "LR",
    "NL",
    "SG",
    "US"
  ],
  "with_website": 500,
  "with_listings": 500,
  "with_address": 500
}

Read this endpoint for the current edition's profile count, countries and counts with listings, addresses and domains. The recorded example illustrates the response shape. These counts describe the returned edition, not complete country or worldwide coverage.

Response fields

scopestring
Scope classification of the directory edition
labelstring
Name of the directory edition
descriptionstring
What the edition covers
snapshot_atstring
Latest source observation time across the loaded cohort, in UTC
companiesinteger
Number of company profiles in the edition
countriesarray
Country codes recorded on profiles; not a complete-country coverage claim
with_websiteinteger
Profiles with a primary website or associated domain
with_listingsinteger
Profiles with at least one exchange and ticker pair
with_addressinteger
Profiles with at least one typed address

Access and errors

Use your API key with Parse-Version: 2.0.0. Company requests use the normal pooled request allowance.

A search with no matches returns 200 with an empty companies array. An unknown company ID returns 404. Invalid options or an expired cursor return 400; restart the search for a fresh cursor. Authentication uses 401 or 403, request limits use 429, and an unavailable directory returns 503. Error responses include code, message, docs and request_id.

Questions? Email