# Findymail — Orthogonal API

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

Findymail API for email finding, verification, company enrichment, phone lookup, intellimatch lead search, lookalike company search, technology stack lookup, and intent signals monitoring.

**Verified:** yes

## Access

**Run API:** `POST https://api.orthogonal.com/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

### Find Email from LinkedIn

Find someone's email from a business profile URL. Uses one finder credit if a verified email is found. Limited to 30 concurrent sync requests.

`POST /api/search/business-profile`

**Estimated cost:** $0.01

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `linkedin_url` | string | Yes | Person's LinkedIn URL or username |
| `webhook_url` | string | No | Webhook URL for async callback |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"findymail","path":"/api/search/business-profile","body":{"linkedin_url":"<string>","webhook_url":"<string>"}}'
```

### Lookup Tech Stack

Get the technology stack for a company by domain. 1 credit when technologies found, free when no results.

`POST /api/technologies`

**Estimated cost:** $0.01

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `domain` | string | Yes | Company domain |
| `technologies` | array | No | Filter by tech names (case-insensitive) |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"findymail","path":"/api/technologies","body":{"domain":"<string>","technologies":"<array>"}}'
```

### Reverse Email Lookup

Find a LinkedIn profile from an email address. 1 credit without profile data, 2 credits with profile data (with_profile=true).

`POST /api/search/reverse-email`

**Estimated cost:** $0.01

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `email` | string | Yes | Email address to lookup |
| `with_profile` | boolean | No | Return full profile metadata (default: false) |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"findymail","path":"/api/search/reverse-email","body":{"email":"<string>","with_profile":"<boolean>"}}'
```

### Find Email from Domain

Find contacts with valid emails at a given domain with given roles. Limited to 5 concurrent sync requests.

`POST /api/search/domain`

**Estimated cost:** $0.01

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `domain` | string | Yes | Email domain |
| `roles` | array | Yes | Target roles (max 3) |
| `webhook_url` | string | No | Webhook URL for async callback |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"findymail","path":"/api/search/domain","body":{"domain":"<string>","roles":"<array>","webhook_url":"<string>"}}'
```

### Verify Email

Verify an email address. Uses one verifier credit on all attempted verifications.

`POST /api/verify`

**Estimated cost:** $0.01

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `email` | string | Yes | Email to verify |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"findymail","path":"/api/verify","body":{"email":"<string>"}}'
```

### Get Company Information

Retrieve company data using a LinkedIn URL, name, or domain. At least one field required. 1 credit per successful response.

`POST /api/search/company`

**Estimated cost:** $0.01

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `linkedin_url` | string | No | Company LinkedIn URL |
| `domain` | string | No | Company domain |
| `name` | string | No | Company name |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"findymail","path":"/api/search/company","body":{"linkedin_url":"<string>","domain":"<string>","name":"<string>"}}'
```

### Find Employees

Find employees by company website and job title. 1 credit per found contact. Does NOT return email.

`POST /api/search/employees`

**Estimated cost:** $0.01

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `website` | string | Yes | Company website |
| `job_titles` | array | Yes | Target job titles (max 10) |
| `count` | integer | No | Number of contacts to return (max 5, default 1) |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"findymail","path":"/api/search/employees","body":{"website":"<string>","job_titles":"<array>","count":"<integer>"}}'
```

### Find Phone Number

Find phone number from a LinkedIn URL. Uses 10 finder credits if found. EU citizens excluded for legal reasons.

`POST /api/search/phone`

**Estimated cost:** $0.01

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `linkedin_url` | string | Yes | Person's LinkedIn URL or username |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"findymail","path":"/api/search/phone","body":{"linkedin_url":"<string>"}}'
```

### Intellimatch Search

Create an Intellimatch search task using natural language queries. Returns a hash for polling status.

`POST /api/intellimatch/search`

**Estimated cost:** $0.01

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Search query describing target companies |
| `limit` | integer | No | Max companies to export (default 100, max 5000) |
| `config` | object | No | Export configuration with find_contact, find_email, find_phone, target_job_titles, mode, etc. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"findymail","path":"/api/intellimatch/search","body":{"query":"<string>","limit":"<integer>","config":"<object>"}}'
```

### Get Export Status

Poll export status for an Intellimatch search. Returns success, processing, pending, failed, or not_found.

`GET /api/intellimatch/status`

**Estimated cost:** $0.01

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `hash` | string | Yes | Export hash from the search endpoint |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"findymail","path":"/api/intellimatch/status","method":"GET","query":{"hash":"<string>"}}'
```

### Get Intellimatch Results

Retrieve paginated company and contact results from a completed Intellimatch search.

`GET /api/intellimatch/data`

**Estimated cost:** $0.01

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `hash` | string | Yes | Export hash from search endpoint |
| `page` | integer | No | Page number (default 1) |
| `per_page` | integer | No | Results per page (max 500, default 100) |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"findymail","path":"/api/intellimatch/data","method":"GET","query":{"hash":"<string>","page":"<integer>","per_page":"<integer>"}}'
```

### Lookalike Company Search

Find companies similar to a seed domain. 1 credit per 10 results (rounded up).

`POST /api/lookalike/search`

**Estimated cost:** $0.01

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `seed` | string | Yes | Seed company domain or URL |
| `same_country` | boolean | No | Only same country as seed (default false) |
| `same_size` | boolean | No | Only same size range as seed (default false) |
| `limit` | integer | No | Max companies (default 100, max 10000) |
| `exclusion_list_ids` | array | No | Exclusion list IDs to filter out known companies |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"findymail","path":"/api/lookalike/search","body":{"seed":"<string>","same_country":"<boolean>","same_size":"<boolean>","limit":"<integer>","exclusion_list_ids":"<array>"}}'
```

### Search Technologies

Search the technology catalog by name. Returns up to 25 results. Free, no credits consumed. Rate limited to 10 req/min.

`GET /api/technologies/search`

**Estimated cost:** $0.01

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Search term (min 2 chars) |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"findymail","path":"/api/technologies/search","method":"GET","query":{"q":"<string>"}}'
```

### Find Email from Name

Find someone's email from name and company (website or name). Uses one finder credit if a verified email is found.

`POST /api/search/name`

**Estimated cost:** $0.01

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `name` | string | Yes | Person's full name |
| `domain` | string | Yes | Company domain (best) or company name |
| `webhook_url` | string | No | Webhook URL for async callback |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"findymail","path":"/api/search/name","body":{"name":"<string>","domain":"<string>","webhook_url":"<string>"}}'
```

---

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