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

# Business Search quickstart

> Send your first Business Search request. One [POST /search/company](/api-reference/business-search/search-company) call in Instant mode returns up to 10 records with req_id and meta.

<Note>
  Business Search is in early access. Email [sales@brightdata.com](mailto:sales@brightdata.com) to request access.
</Note>

In this quickstart we run one company search with cURL and read the three parts of the response: `req_id`, `meta` and `documents`.

## Prerequisites

* A Bright Data account with Business Search access. Check your entitlement in the [Control Panel](https://brightdata.com/cp/start)
* A Bright Data API key from [Authentication](/api-reference/authentication)

## Step 1: Set your API key

Store the key in an environment variable so it never appears in a command history or a committed file. The request in the next step reads it from there:

```bash theme={null}
export BRIGHTDATA_API_KEY="YOUR_API_KEY"
```

## Step 2: Send a company search

This request uses Instant mode to find US software companies with 50 to 500 employees. `view: "summary"` asks for a compact record instead of the default `id_only`:

<CodeGroup>
  ```bash cURL theme={null}
  curl --request POST "https://api.brightdata.com/search/company" \
    --header "Authorization: Bearer $BRIGHTDATA_API_KEY" \
    --header "Content-Type: application/json" \
    --data '{
      "source": "linkedin_company",
      "mode": "instant",
      "query": "US software companies with 50 to 500 employees",
      "offset": 0,
      "limit": 10,
      "view": "summary"
    }'
  ```

  ```python Python theme={null}
  import os
  import requests

  response = requests.post(
      "https://api.brightdata.com/search/company",
      headers={
          "Authorization": f"Bearer {os.environ['BRIGHTDATA_API_KEY']}",
          "Content-Type": "application/json",
      },
      json={
          "source": "linkedin_company",
          "mode": "instant",
          "query": "US software companies with 50 to 500 employees",
          "offset": 0,
          "limit": 10,
          "view": "summary",
      },
  )

  data = response.json()
  if response.status_code == 200:
      print(data["req_id"], data["meta"]["matched"])
      for doc in data["documents"]:
          print(doc["data"]["name"])
  else:
      print(response.status_code, data)
  ```

  ```javascript Node.js theme={null}
  const response = await fetch("https://api.brightdata.com/search/company", {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${process.env.BRIGHTDATA_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      source: "linkedin_company",
      mode: "instant",
      query: "US software companies with 50 to 500 employees",
      offset: 0,
      limit: 10,
      view: "summary",
    }),
  });

  const data = await response.json();
  if (response.status === 200) {
    console.log(data.req_id, data.meta.matched);
    for (const doc of data.documents) console.log(doc.data.name);
  } else {
    console.log(response.status, data);
  }
  ```
</CodeGroup>

The request returns HTTP 200 and a JSON body that starts with `req_id`.

If the body is `{"error":"Invalid token"}` with HTTP 401, the key is missing, invalid or expired. Check the value you exported in Step 1. HTTP 403 means the account behind the key is inactive or not on the Business Search allowlist yet. Email [sales@brightdata.com](mailto:sales@brightdata.com) to request access.

## Step 3: Read the response

A successful response contains request metadata and a `documents` array. This is the first of the 10 records from a real run, with `url` and `logo` omitted:

```json theme={null}
{
  "req_id": "ra7672a1925f744ebb592ec88b9f6bbf1",
  "source": "linkedin_company",
  "meta": {
    "coverage_percent": 100,
    "matched": 605,
    "offset": 0,
    "limit": 10
  },
  "documents": [
    {
      "bright_id": "7b8d489b82344beae097e05cddfcf1da56ed51e37fab6fc64b2ca58e7b0713bd",
      "data": {
        "name": "SourceForge",
        "slogan": "The complete software platform. SourceForge is the largest B2B software review and comparison directory in the world.",
        "industry": "Software Development",
        "headquarters_location": "San Diego, California",
        "headquarters_country_code": "US",
        "offices_cities": ["San Diego"],
        "company_size_from": 51,
        "company_size_to": 200,
        "employees_in_linkedin": 59,
        "linkedin_followers": 39183,
        "website": "https://sourceforge.net/",
        "domain": "sourceforge.net"
      }
    }
  ]
}
```

`req_id` identifies the request. Keep it for troubleshooting and include it in support tickets.

## What you built and where to go next

You sent a natural-language company search and read the records it returned. Next, decide whether you need a broad candidate set or a ranked shortlist in [What is Business Search?](/products/business-search/introduction#what-does-each-mode-do). Then write your first structured query with [Business Search query syntax](/products/business-search/query-syntax).
