# Tomba — 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)
Email finding and verification API
**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
### Domain Suggestions
Get domain suggestions for a company name
`GET /v1/domain-suggestions`
**Estimated cost:** $0.01
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | The domain or company name to find suggestions for |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"tomba","path":"/v1/domain-suggestions","method":"GET","query":{"query":"<string>"}}'
```
### Search Companies
Search for companies using natural language queries or structured filters. AI assistant generates appropriate filters from your query.
`POST /v1/reveal/search`
**Estimated cost:** $0.01
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | No | Natural language query (8-100 chars). AI generates filters from this. Use only on first request, then use filters for pagination. |
| `filters` | object | No | Structured filters: company, location_country, location_city, location_state, industry, size, type, keywords, founded, technologies, similar, revenue, sic, naics. Each has include/exclude arrays. |
| `page` | integer | No | Page number for pagination (1-1000, 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":"tomba","path":"/v1/reveal/search","body":{"query":"<string>","filters":"<object>","page":"<integer>"}}'
```
### Domain Search
Search emails based on a website domain. Returns all email addresses found on the internet for a given domain, with organization info and employee details.
`GET /v1/domain-search`
**Estimated cost:** $0.01
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `domain` | string | Yes | Domain name to search, e.g. stripe.com |
| `company` | string | Yes | Company name (3-75 chars) |
| `page` | string | No | Page number (default 1) |
| `limit` | string | No | Results per page: 10, 20, or 50 (default 10) |
| `country` | string | No | Two-letter country code filter |
| `department` | string | No | Department filter: engineering, sales, finance, hr, it, marketing, operations, management, executive, legal, support, communication, software, security, pr, warehouse, diversity, administrative, facilities, accounting |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"tomba","path":"/v1/domain-search","method":"GET","query":{"domain":"<string>","company":"<string>","page":"<string>","limit":"<string>","country":"<string>","department":"<string>"}}'
```
### Location
Get employee location distribution for a domain.
`GET /v1/location`
**Estimated cost:** $0.01
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `domain` | string | Yes | Domain name, e.g. stripe.com |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"tomba","path":"/v1/location","method":"GET","query":{"domain":"<string>"}}'
```
### LinkedIn Finder
Find the email address from a LinkedIn profile URL.
`GET /v1/linkedin`
**Estimated cost:** $0.01
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | LinkedIn profile URL |
| `enrich_mobile` | string | No | Set to true to get phone number |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"tomba","path":"/v1/linkedin","method":"GET","query":{"url":"<string>","enrich_mobile":"<string>"}}'
```
### Email Enrichment
Enrich an email address with person and company data (name, location, social handles).
`GET /v1/enrich`
**Estimated cost:** $0.01
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `email` | string | Yes | Email address to enrich |
| `enrich_mobile` | string | No | Set to true to get phone number |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"tomba","path":"/v1/enrich","method":"GET","query":{"email":"<string>","enrich_mobile":"<string>"}}'
```
### Email Finder
Find the most likely email address from a domain name, first name, and last name.
`GET /v1/email-finder`
**Estimated cost:** $0.01
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `domain` | string | Yes | Domain name, e.g. stripe.com |
| `company` | string | Yes | Company name (3-75 chars) |
| `full_name` | string | No | Full name of the person |
| `first_name` | string | No | First name of the person |
| `last_name` | string | No | Last name of the person |
| `enrich_mobile` | string | No | Set to true to get phone number |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"tomba","path":"/v1/email-finder","method":"GET","query":{"domain":"<string>","company":"<string>","full_name":"<string>","first_name":"<string>","last_name":"<string>","enrich_mobile":"<string>"}}'
```
### Email Count
Get the count of email addresses for a domain, broken down by department and seniority.
`GET /v1/email-count`
**Estimated cost:** $0.01
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `domain` | string | Yes | Domain name, e.g. stripe.com |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"tomba","path":"/v1/email-count","method":"GET","query":{"domain":"<string>"}}'
```
### Author Finder
Find the email address of a blog post author from the article URL.
`GET /v1/author-finder`
**Estimated cost:** $0.01
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | URL of the blog post/article |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"tomba","path":"/v1/author-finder","method":"GET","query":{"url":"<string>"}}'
```
### Email Format
Get the email format patterns used by a domain (e.g. first.last, firstlast).
`GET /v1/email-format`
**Estimated cost:** $0.01
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `domain` | string | Yes | Domain name, e.g. stripe.com |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"tomba","path":"/v1/email-format","method":"GET","query":{"domain":"<string>"}}'
```
### Verify Email
Verify the deliverability of an email address.
`GET /v1/email-verifier`
**Estimated cost:** $0.01
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `email` | string | Yes | The email address 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":"tomba","path":"/v1/email-verifier","method":"GET","query":{"email":"<string>"}}'
```
### Combined Enrichment
Get combined person and company information from an email.
`GET /v1/combined/find`
**Estimated cost:** $0.01
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `email` | string | Yes | Email address to enrich |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"tomba","path":"/v1/combined/find","method":"GET","query":{"email":"<string>"}}'
```
### Email Sources
Find the sources where an email was found on the web.
`GET /v1/email-sources`
**Estimated cost:** $0.01
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `email` | string | Yes | Email address to find sources for |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"tomba","path":"/v1/email-sources","method":"GET","query":{"email":"<string>"}}'
```
### Find Phone
Find phone numbers associated with an email, domain, or LinkedIn profile.
`GET /v1/phone-finder`
**Estimated cost:** $0.01
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `email` | string | No | Email address to find phone for |
| `domain` | string | No | Domain to find phone numbers for |
| `linkedin` | string | No | LinkedIn profile URL |
| `full` | boolean | No | Set to true to get all phone numbers |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"tomba","path":"/v1/phone-finder","method":"GET","query":{"email":"<string>","domain":"<string>","linkedin":"<string>","full":"<boolean>"}}'
```
### Validate Phone
Validate a phone number and get carrier information.
`GET /v1/phone-validator`
**Estimated cost:** $0.01
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `phone` | string | Yes | Phone number to validate |
| `country_code` | string | No | Country code (e.g., US) |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"tomba","path":"/v1/phone-validator","method":"GET","query":{"phone":"<string>","country_code":"<string>"}}'
```
### Domain Status
Check the status and availability of a domain.
`GET /v1/domain-status`
**Estimated cost:** $0.01
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `domain` | string | Yes | Domain to check |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"tomba","path":"/v1/domain-status","method":"GET","query":{"domain":"<string>"}}'
```
### Technology Stack
Discover technologies used by a website.
`GET /v1/technology`
**Estimated cost:** $0.01
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `domain` | string | Yes | Domain to analyze |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"tomba","path":"/v1/technology","method":"GET","query":{"domain":"<string>"}}'
```
### Find Company
Get company information from a domain.
`GET /v1/companies/find`
**Estimated cost:** $0.01
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `domain` | string | Yes | Domain name (e.g., stripe.com) |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"tomba","path":"/v1/companies/find","method":"GET","query":{"domain":"<string>"}}'
```
### Similar Domains
Find domains similar to a given domain.
`GET /v1/similar`
**Estimated cost:** $0.01
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `domain` | string | Yes | Domain to find similar domains for |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"tomba","path":"/v1/similar","method":"GET","query":{"domain":"<string>"}}'
```
### Find Person
Get person information from an email address.
`GET /v1/people/find`
**Estimated cost:** $0.01
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `email` | string | Yes | Email address to look up |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"tomba","path":"/v1/people/find","method":"GET","query":{"email":"<string>"}}'
```
---
Full details and an interactive quickstart: https://orthogonal.com/discover/tomba