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

# Quickstart

> Start with either the Playground or the API, depending on how quickly you want to validate Bulkgrid.

There are two good ways to evaluate Bulkgrid.

## Path 1: Use the Playground first

Use the dashboard Playground if you want to validate the product before writing integration code.

The Playground supports:

* Crawl
* Deep Crawl
* Extract
* Search

Read [Playground Quickstart](/getting-started/playground-quickstart).

## Path 2: Connect the MCP server

Use the MCP setup path if you want tools like VS Code, Cursor, Claude, or Codex to search Bulkgrid-indexed content.

```bash theme={null}
export BULKGRID_API_KEY='bg_live_your_api_key'
export BULKGRID_MCP_URL='https://your-bulkgrid-base-url/api/v1/mcp'

npx -y @bulkgrid/cli init --all
```

Read [MCP Server](/integrations/mcp-server).

## Path 3: Use the API first

Use the API-first path if you already know you want to integrate Bulkgrid programmatically.

### 1. Set environment variables

```bash theme={null}
export BULKGRID_API_KEY='bg_live_your_api_key'
export BULKGRID_BASE_URL='https://your-bulkgrid-base-url'
```

### 2. Make your first search request

<CodeGroup>
  ```bash cURL theme={null}
  curl "$BULKGRID_BASE_URL/api/v1/search" \
    -H 'Content-Type: application/json' \
    -H "x-api-key: $BULKGRID_API_KEY" \
    -d '{
      "query": "Bulkgrid documentation",
      "limit": 5
    }'
  ```

  ```js Node.js theme={null}
  import { BulkgridClient } from '@bulkgrid/sdk';

  const client = new BulkgridClient({
    apiKey: process.env.BULKGRID_API_KEY ?? '',
    baseUrl: process.env.BULKGRID_BASE_URL ?? '',
  });

  const data = await client.search({
    query: 'Bulkgrid documentation',
    limit: 5,
  });
  ```
</CodeGroup>

### 3. Create an extraction run

<CodeGroup>
  ```bash cURL theme={null}
  curl "$BULKGRID_BASE_URL/api/v1/extract" \
    -H 'Content-Type: application/json' \
    -H "x-api-key: $BULKGRID_API_KEY" \
    -d '{
      "urls": ["https://example.com"],
      "query": "Extract the company name and product summary",
      "schema": {
        "type": "object",
        "properties": {
          "companyName": { "type": "string" },
          "productSummary": { "type": "string" }
        }
      }
    }'
  ```

  ```js Node.js theme={null}
  import { BulkgridClient } from '@bulkgrid/sdk';

  const client = new BulkgridClient({
    apiKey: process.env.BULKGRID_API_KEY ?? '',
    baseUrl: process.env.BULKGRID_BASE_URL ?? '',
  });

  const run = await client.extract({
    urls: ['https://example.com'],
    query: 'Extract the company name and product summary',
    schema: {
      type: 'object',
      properties: {
        companyName: { type: 'string' },
        productSummary: { type: 'string' },
      },
    },
  });
  ```
</CodeGroup>

### 4. Poll the run and fetch results

* `GET /api/v1/runs/{runId}`
* `GET /api/v1/runs/{runId}/results`

## What to read next

* [Playground Quickstart](/getting-started/playground-quickstart)
* [Authentication](/getting-started/authentication)
* [MCP Server](/integrations/mcp-server)
* [Understanding Runs and Results](/getting-started/understanding-runs-and-results)
* [Source Management](/guides/source-management)
