# Apollo API — Orthogonal API

> Pay-per-use API on Orthogonal. Each call is billed to your Orthogonal balance.
> Base API: `https://api.orth.sh/v1/run` · [llms.txt](https://orthogonal.com/llms.txt) · [browse all APIs](https://orthogonal.com/discover)

Apollo.io API for people and company enrichment, search, and prospecting. Access the Apollo database of 210M+ contacts and 30M+ companies.

**Verified:** yes

## Access

**Run API:** `POST https://api.orth.sh/v1/run`
**Auth:** `Authorization: Bearer $ORTHOGONAL_API_KEY`
Get an API key at https://orthogonal.com/dashboard/settings/api-keys

Every call goes through the unified Run API: send the API `slug`, the endpoint `path`, and the `query`/`body` parameters. The response is `{ "success": true, "price": "<usd>", "data": { ... } }`.

## Endpoints

### Organization Enrichment

Enrich a company by domain. Returns industry, revenue, employee count, funding, locations, and more.

`GET /api/v1/organizations/enrich`

**Estimated cost:** $0.01

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `domain` | string | Yes | Company domain to enrich (e.g., apollo.io) |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"apollo","path":"/api/v1/organizations/enrich","method":"GET","query":{"domain":"<string>"}}'
```

### Bulk Organization Enrichment

Enrich up to 10 organizations in a single request.

`POST /api/v1/organizations/bulk_enrich`

**Estimated cost:** $0.05

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `domains` | array | Yes | Array of company domains to enrich (max 10) |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"apollo","path":"/api/v1/organizations/bulk_enrich","body":{"domains":"<array>"}}'
```

### Organization Job Postings

Get current job postings for a company by Apollo organization ID.

`GET /api/v1/organizations/{organization_id}/job_postings`

**Estimated cost:** $0.01

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `organization_id` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |
| `organization_id` | string | Yes | Apollo organization ID (path param) |

```bash
# Replace {organization_id} in "path" with real values before sending
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"apollo","path":"/api/v1/organizations/{organization_id}/job_postings","method":"GET","query":{"organization_id":"<string>"}}'
```

### News Articles Search

Search for news articles related to companies in the Apollo database.

`POST /api/v1/news_articles/search`

**Estimated cost:** $0.01

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `organization_ids` | array | Yes | Apollo organization IDs to get news for (required) |
| `q_keywords` | string | No | Keywords to search in articles |
| `page` | integer | No | Page number |
| `per_page` | integer | No | Results per page |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"apollo","path":"/api/v1/news_articles/search","body":{"organization_ids":"<array>","q_keywords":"<string>","page":"<integer>","per_page":"<integer>"}}'
```

### Get Organization

Get complete organization info by Apollo organization ID.

`GET /api/v1/organizations/{id}`

**Estimated cost:** $0.01

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |
| `id` | string | Yes | Apollo organization ID (path param) |

```bash
# Replace {id} in "path" with real values before sending
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"apollo","path":"/api/v1/organizations/{id}","method":"GET","query":{"id":"<string>"}}'
```

### People Enrichment

Enrich a person by email, LinkedIn URL, name+company, or other identifiers. Returns contact details, job info, and social profiles.

`POST /api/v1/people/match`

**Estimated cost:** $0.01

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `email` | string | No | Email address to match |
| `linkedin_url` | string | No | LinkedIn profile URL |
| `first_name` | string | No | First name (use with last_name and organization) |
| `last_name` | string | No | Last name |
| `organization_name` | string | No | Company name |
| `domain` | string | No | Company domain |
| `reveal_personal_emails` | boolean | No | Include personal emails in response |
| `reveal_phone_number` | boolean | No | Include phone numbers in response |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"apollo","path":"/api/v1/people/match","body":{"email":"<string>","linkedin_url":"<string>","first_name":"<string>","last_name":"<string>","organization_name":"<string>","domain":"<string>","reveal_personal_emails":"<boolean>","reveal_phone_number":"<boolean>"}}'
```

### Bulk People Enrichment

Enrich up to 10 people in a single request. Webhook required for async results.

`POST /api/v1/people/bulk_match`

**Estimated cost:** $0.05

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `details` | array | Yes | Array of person objects to enrich (max 10) |
| `reveal_personal_emails` | boolean | No | Include personal emails |
| `reveal_phone_number` | boolean | No | Include phone numbers |
| `webhook_url` | string | Yes | HTTPS webhook URL for results |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"apollo","path":"/api/v1/people/bulk_match","body":{"details":"<array>","reveal_personal_emails":"<boolean>","reveal_phone_number":"<boolean>","webhook_url":"<string>"}}'
```

### Organization Search

Search Apollo database for companies matching filters. Returns up to 100 results per page.

`POST /api/v1/mixed_companies/search`

**Estimated cost:** $0.01

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `organization_locations` | array | No | HQ locations to filter by |
| `organization_num_employees_ranges` | array | No | Employee count ranges |
| `organization_industry_tag_ids` | array | No | Industry tag IDs |
| `q_keywords` | string | No | Keywords to search |
| `page` | integer | No | Page number (1-500) |
| `per_page` | integer | No | Results per page (max 100) |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"apollo","path":"/api/v1/mixed_companies/search","body":{"organization_locations":"<array>","organization_num_employees_ranges":"<array>","organization_industry_tag_ids":"<array>","q_keywords":"<string>","page":"<integer>","per_page":"<integer>"}}'
```

### People Search

Search Apollo database for people matching filters. Returns up to 100 results per page. Does not include emails/phones - use enrichment endpoints for that.

`POST /api/v1/mixed_people/api_search`

**Cost:** Free

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `person_titles` | array | No | Job titles to filter by |
| `person_seniorities` | array | No | Seniority levels (owner, founder, c_suite, partner, vp, head, director, manager, senior, entry) |
| `organization_locations` | array | No | Company HQ locations |
| `organization_num_employees_ranges` | array | No | Employee count ranges |
| `person_locations` | array | No | Person locations |
| `q_keywords` | string | No | Keywords to search |
| `page` | integer | No | Page number (1-500) |
| `per_page` | integer | No | Results per page (max 100) |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"apollo","path":"/api/v1/mixed_people/api_search","body":{"person_titles":"<array>","person_seniorities":"<array>","organization_locations":"<array>","organization_num_employees_ranges":"<array>","person_locations":"<array>","q_keywords":"<string>","page":"<integer>","per_page":"<integer>"}}'
```

---

Full details and an interactive quickstart: https://orthogonal.com/discover/apollo
