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

# Quickstart

> Resolve your first company and get firmographic data

Resolve a company to its canonical entity and enrich it with firmographic data using the Kernel API. You'll make four API calls: start entity resolution, get the identity result, start firmographic enrichment, and get the enrichment result.

## Prerequisites

* A Kernel API key — [create one in Settings > API keys](https://app.kernel.ai)
* `curl` in your terminal (or use the examples below in any HTTP client)

## 1. Start entity resolution

Send a `POST` request with a company name:

```bash curl theme={null}
curl -X POST https://api.kernel.ai/rest/v1/entity-resolution \
  -H "x-api-key: $KERNEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"legal_name": "Stripe"}'
```

You'll receive a `202` with an `id`:

```json Response (202) theme={null}
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "processing"
}
```

## 2. Get the result

Poll the job endpoint with the `id` from step 1:

```bash curl theme={null}
curl https://api.kernel.ai/rest/v1/entity-resolution/550e8400-e29b-41d4-a716-446655440000 \
  -H "x-api-key: $KERNEL_API_KEY"
```

When the job is complete, you'll get the resolved identity:

```json Response (200) theme={null}
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "completed",
  "created_at": "2025-06-05T12:00:00Z",
  "completed_at": "2025-06-05T12:00:05Z",
  "record": {
    "kernel_id": "2532551796",
    "identity_type": "legal_entity",
    "identity_resolution_confidence": "HIGH",
    "identity_resolution_reasoning": "Company identified as Stripe, Inc. via legal name, website, and country alignment.",
    "legal_info": {
      "country": "US",
      "reasoning": "Confirmed via terms of service page.",
      "trading_name": "Stripe",
      "confidence": "HIGH",
      "legal_name": "Stripe, Inc.",
      "website": "https://stripe.com"
    },
    "trading_info": {
      "country": "US",
      "website": "https://stripe.com",
      "reasoning": "Primary brand site confirmed via domain ownership.",
      "trading_name": "Stripe",
      "confidence": "HIGH"
    },
    "entity_classification": {
      "type": "Company",
      "subtype": "Operating",
      "reasoning": "Classified as an operating company based on commercial activity."
    }
  }
}
```

## 3. Start firmographic enrichment

Use the `kernel_id` from the resolved entity to start a firmographic enrichment job:

```bash curl theme={null}
curl -X POST https://api.kernel.ai/rest/v1/firmographics \
  -H "x-api-key: $KERNEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"kernel_id": "2532551796"}'
```

You'll receive a `202` with a firmographic enrichment `id`:

```json Response (202) theme={null}
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "status": "processing"
}
```

## 4. Get firmographic data

Poll the firmographic enrichment job endpoint with the `id` from step 3:

```bash curl theme={null}
curl https://api.kernel.ai/rest/v1/firmographics/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
  -H "x-api-key: $KERNEL_API_KEY"
```

When the job is complete, you'll get firmographic data in the `record` object:

```json Response (200) theme={null}
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "status": "completed",
  "created_at": "2025-06-05T12:01:00Z",
  "completed_at": "2025-06-05T12:02:00Z",
  "record": {
    "kernel_id": "2532551796",
    "op_status": {
      "operational_status": "Active",
      "reasoning": "Entity is actively operating."
    },
    "location": {
      "operating": {
        "street": "354 Oyster Point Blvd",
        "city": "South San Francisco",
        "state": "California",
        "country": "United States",
        "postcode": null,
        "reasoning": null
      },
      "registered": {
        "street": null,
        "city": null,
        "state": null,
        "country": null,
        "postcode": null,
        "reasoning": null
      }
    },
    "headcount": {
      "count": 5300,
      "count_entity": 5300,
      "count_consolidated": 8150,
      "confidence": "HIGH",
      "reasoning": null
    },
    "revenue": {
      "usd": null,
      "consolidated_usd": null,
      "confidence": null,
      "local_currency": null,
      "consolidated_local": null,
      "consolidated_currency": null,
      "local": null,
      "reasoning": null,
      "source": null
    }
  }
}
```

<Tip>
  Firmographic enrichment is asynchronous. Use exponential backoff while polling, starting at 2 seconds and capping at 30 seconds.
</Tip>

## Next steps

<CardGroup cols={2}>
  <Card title="API reference" icon="book" href="/api-reference/introduction">
    Full endpoint documentation, authentication, and error handling.
  </Card>

  <Card title="Firmographic result" icon="building" href="/api-reference/schemas/firmographic-result">
    Full schema for the firmographic response object.
  </Card>
</CardGroup>
