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

# Public API Overview

> Pull the companies, people and sources Huntd tracks for you

## What the Public API is

The Public API lets you pull **your own Huntd data** — the companies, people and sources we
track on your behalf. It is synchronous, paginated, date-filterable, and **consumes no credits**.

It sits alongside the existing Company Lookup API. Nothing about Company Lookup or Email
Verification has changed.

## Base URL

All Public API requests go to:

```
https://app.gethuntd.com/api/v1/public
```

<Warning>
  This is a different host from the Company Lookup API, which remains on
  `https://api.gethuntd.com`. Every example on these pages uses absolute URLs for that reason.
</Warning>

## Available endpoints

| Endpoint            | Method | Description                                        |
| ------------------- | ------ | -------------------------------------------------- |
| `/sources`          | GET    | Sources tracked for your organization, with counts |
| `/people`           | GET    | Tracked people, paginated                          |
| `/companies`        | GET    | Tracked companies, paginated                       |
| `/people/stream`    | GET    | Every matching person as NDJSON, one request       |
| `/companies/stream` | GET    | Every matching company as NDJSON, one request      |

## Which API do I want?

|                         | Public API                               | Company Lookup API                                 |
| ----------------------- | ---------------------------------------- | -------------------------------------------------- |
| **Base URL**            | `https://app.gethuntd.com/api/v1/public` | `https://api.gethuntd.com`                         |
| **Question it answers** | "What has Huntd found for me?"           | "Does this specific company use this tool?"        |
| **Style**               | Synchronous — response is the data       | Asynchronous — submit a job, poll or await webhook |
| **Credits**             | None                                     | 1 credit per contact returned                      |
| **Rate limit**          | 60 requests/minute per key               | See [API Overview](/api-reference/introduction)    |
| **Key provisioning**    | Self-service in Settings                 | Contact your administrator                         |
| **Bulk export**         | Yes — NDJSON streaming                   | No                                                 |

<Note>
  If you want to *discover* whether a given domain uses a tool, use
  [Company Lookup](/api-reference/company-lookup/submit-lookup). If you want to *retrieve* what
  Huntd already tracks for you, use the Public API.
</Note>

## Your first request

<CodeGroup>
  ```bash cURL theme={null}
  curl https://app.gethuntd.com/api/v1/public/sources \
    -H "X-API-Key: hntd_abc12345_yoursecretkey"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://app.gethuntd.com/api/v1/public/sources', {
    headers: { 'X-API-Key': process.env.HUNTD_API_KEY }
  });
  const body = await response.json();
  ```

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

  response = requests.get(
      'https://app.gethuntd.com/api/v1/public/sources',
      headers={'X-API-Key': os.environ['HUNTD_API_KEY']}
  )
  body = response.json()
  ```
</CodeGroup>

## Next steps

<CardGroup cols={2}>
  <Card title="Authentication" icon="key" href="/public-api/authentication">
    Create a key in Settings and make your first authenticated call
  </Card>

  <Card title="Conventions" icon="book" href="/public-api/conventions">
    Envelope, pagination, date filters, rate limits and errors
  </Card>

  <Card title="Streaming" icon="bolt" href="/public-api/streaming">
    Export the full result set in a single request
  </Card>

  <Card title="Signup webhooks" icon="bell" href="/public-api/signup-webhooks">
    Get notified when someone at a tracked account signs up
  </Card>
</CardGroup>
