> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abstractapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Company Enrichment API

> With Abstract's Company Enrichment API, you can easily get detailed information about any company domain.

It's very simple to use: you are only required to send your unique `api_key` and the `domain` you want to enrich to get information about the company.

## Getting started

### REST

The Company Enrichment API, like all of Abstract's APIs, is organized around REST. It is designed to use predictable, resource-oriented URLs and to use HTTP status codes to indicate errors.

### HTTPS

The Company Enrichment API requires all communications to be secured with TLS 1.2 or greater.

### API Versions

All of Abstract's APIs are versioned. The Company Enrichment API is currently on Version 2.

### Your API Key

Your API key is your unique authentication key to be used to access Abstract's Company Enrichment API. Note that each of Abstract's APIs has a unique API key, so you will need different keys to access the Company Enrichment and Email Validation APIs, for example. To authenticate your requests, you will need to append your API key to the base URL.

### Base URL

```
https://companyenrichment.abstractapi.com/v2
```

### Validation endpoint

Abstract's Company Enrichment API simply requires your unique API key and the domain you’d like to enrich:

```
https://companyenrichment.abstractapi.com/v2
? api_key = YOUR_UNIQUE_API_KEY
& domain = airbnb.com
```

This was a successful request, so the company details associated with the domain are returned below:

<ResponseExample>
  ```json theme={null}
  {
    	"domain": "airbnb.com",
      "company_name": "Airbnb",
      "description": "Airbnb is a company that provides a wide array of accommodations for every type of traveler. With over 7 million vacation rentals and 2 million top-rated guest favorites across more than 220 countries and regions, Airbnb offers a unique and diverse selection of stays worldwide.",
      "logo": "https://logo.abstractapi.com/cb6281618-c67a-5004-9c9b-29fc2245a4f7_-airbnb.png",
      "year_founded": "2008",
      "street_address": "888 Brannan Street", 
      "city": "San Francisco",
      "state": "California",
      "country": "United States",
      "country_iso_code" : "US", 
      "postal_code" : "94103",
      "latitude": 37.7719568,
      "longitude": -122.4054484 ,
      "sic_code": "87",
      "naics_code": "54",
      "industry": "Travel Services",
      "employee_count": 6907,
      "employee_range": "5K-10K",
      "annual_revenue": "9917000000",
      "revenue_range": "$1B-$10B",
      "phone_numbers": ["+14155104027"],
      "email_addresses" : ["support@airbnb.com"],
      "type" : "public",
      "ticker" : "ABNB",
      "exchange" : "XNAS",
      "global_ranking" : "7391",
      "tags": ["Hospitality","Travel"],
      "technologies" : ["Google Analytics","Javascript","Segment","Mixpanel","Branch","Salesforce","New Relic","Facebook Pixel"],
      "linkedin_url" : "linkedin.com/company/airbnb",
      "facebook_url" : "facebook.com/airbnb",
      "twitter_url" : "twitter.com/airbnb",
      "instagram_url" : "instagram.com/airbnb",
      "crunchbase_url" : "crunchbase.com/organization/airbnb"
   }
  ```
</ResponseExample>

### Request parameters

<ParamField query="api_key" type="String" required>
  Your unique API key. Note that each user has unique API keys *for each of
  Abstract's APIs*, so your Company Enrichment API key will not work for your IP
  Geolocation API, for example.
</ParamField>

<ParamField query="domain" type="String" required>
  The domain of the company you want to get data from.
</ParamField>

<ParamField query="fields" type="String">
  You can chose to only receive a few fields from the JSON response. To do so, you can include a fields value in the query parameters with a comma separated list of the top-level keys you want to be returned. For example, adding ?fields=domain will return only the domain in the JSON response.
</ParamField>

### Response parameters

The API response is returned in a universal and lightweight [JSON format](https://www.json.org/json-en.html).

<ResponseField name="domain" type="String">
  The domain the company website is hosted on.
</ResponseField>

<ResponseField name="company_name" type="String">
  The name of the company.
</ResponseField>

<ResponseField name="description" type="String">
  A brief description of the company.
</ResponseField>

<ResponseField name="logo" type="String">
  The URL to download the company's logo.
</ResponseField>

<ResponseField name="year_founded" type="String">
  The year the company was founded.
</ResponseField>

<ResponseField name="street_address" type="String">
  The number and name of the street the company is based in.
</ResponseField>

<ResponseField name="city" type="String">
  The city or regiont he company headquarter is based in.
</ResponseField>

<ResponseField name="state" type="String">
  The state the company is based in.
</ResponseField>

<ResponseField name="country" type="String">
  The country the company is based in.
</ResponseField>

<ResponseField name="country_iso_code" type="String">
  Country's ISO 3166-1 alpha-2 code.
</ResponseField>

<ResponseField name="postal_code" type="String">
  ZIP or postal code.
</ResponseField>

<ResponseField name="latitude" type="Float">
  Decimal of the latitude.
</ResponseField>

<ResponseField name="longitude" type="Float">
  Decimal of the longitude.
</ResponseField>

<ResponseField name="sic_code" type="String">
  Code that indicates the industry of the company
</ResponseField>

<ResponseField name="naics_code" type="String">
  Code that indicates the industry of the company
</ResponseField>

<ResponseField name="industry" type="String">
  The industry the company is operating in.
</ResponseField>

<ResponseField name="employee_count" type="String">
  The approximate number of employees of the company.
</ResponseField>

<ResponseField name="employee_range" type="String">
  The approximate range of employees of the company.
</ResponseField>

<ResponseField name="annual_revenue" type="String">
  The approximate annual reveneu of the company.
</ResponseField>

<ResponseField name="revenue_range" type="String">
  The approximate range of revenue of the company.
</ResponseField>

<ResponseField name="phone_numbers" type="Array">
  Array with the phone numbers of the company.
</ResponseField>

<ResponseField name="email_addresses" type="Array">
  Array with the emails addresess to contact the company.
</ResponseField>

<ResponseField name="type" type="String">
  Indicates if the company is public or private.
</ResponseField>

<ResponseField name="ticker" type="String">
  If the company is public, it will show the company's ticker.
</ResponseField>

<ResponseField name="exchange" type="String">
  If the company is public, it will show the company's exchange.
</ResponseField>

<ResponseField name="global_ranking" type="String">
  Indicates if the company is listes on the Umbrella top 1 Million companies.
</ResponseField>

<ResponseField name="tags" type="Array">
  Array with the company's tags.
</ResponseField>

<ResponseField name="technologies" type="Array">
  Array with the company's tech tags.
</ResponseField>

<ResponseField name="linkedin_url" type="String">
  Linkedin URL
</ResponseField>

<ResponseField name="facebook_url" type="String">
  Facebook URL
</ResponseField>

<ResponseField name="twitter_url" type="String">
  Twitter/X URL
</ResponseField>

<ResponseField name="instagram_url" type="String">
  Instagram URL
</ResponseField>

<ResponseField name="crunchbase_url" type="String">
  Crunchbase URL
</ResponseField>

## Response and error codes

Whenever you make a request that fails for some reason, an error is returned in JSON format. The errors include an error code and description, which you can find detailed below.

| Code | Type                  | Details                                                                                                                                                     |
| ---- | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 200  | OK                    | Everything worked as expected.                                                                                                                              |
| 400  | Bad request           | Bad request.                                                                                                                                                |
| 401  | Unauthorized          | The request was unacceptable. Typically due to the API key missing or incorrect.                                                                            |
| 422  | Quota reached         | The request was aborted due to insufficient API credits. (Free plans)                                                                                       |
| 429  | Too many requests     | The request was aborted due to the number of allowed requests per second being reached. This happens on free plans as requests are limited to 1 per second. |
| 500  | Internal server error | The request could not be completed due to an error on the server side.                                                                                      |
| 503  | Service unavailable   | The server was unavailable.                                                                                                                                 |

## Code samples and libraries

Please see the top of this page for code samples for these languages and more. If we're missing a code sample, or if you'd like to contribute a code sample or library in exchange for free credits, email us at: [team@abstractapi.com](mailto:team@abstractapi.com)

## Other notes

A note on metered billing: Each individual domain you submit for lookup counts as a credit used. Credits are counted per request, not per successful response. So if you submit a request for the (invalid) domain "kasj8929hs", that still counts as 1 credit.
