# 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": "", "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.07 | 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":"","webhook_url":""}}' ``` ### 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.07 | 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":"","technologies":""}}' ``` ### 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.65 | 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":""}}' ``` ### 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.001 | 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":""}}' ``` ### 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:** Dynamic — use `"dryRun": true` in the Run API request to check the exact cost before calling. | 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":"","job_titles":"","count":""}}' ``` ### Lookalike Company Search Find companies similar to a seed domain. 1 credit per 10 results (rounded up). `POST /api/lookalike/search` **Estimated cost:** $0.07 | 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":"","same_country":"","same_size":"","limit":"","exclusion_list_ids":""}}' ``` ### Verify Email Verify an email address. Uses one verifier credit on all attempted verifications. `POST /api/verify` **Estimated cost:** $0.015 | 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":""}}' ``` ### 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.07 | 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":"","domain":"","name":""}}' ``` ### 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.001 | 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":""}}' ``` ### 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.07 | 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":"","domain":"","webhook_url":""}}' ``` ### 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.13 | 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":"","with_profile":""}}' ``` ### 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.07 | 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":"","roles":"","webhook_url":""}}' ``` ### Get Intellimatch Results Retrieve paginated company and contact results from a completed Intellimatch search. Pagination billing: call the first page normally and save billing.requestId from the Orthogonal /v1/run response. For later page, offset, or cursor calls on the same logical search, pass parentRequestId with unchanged non-pagination parameters. Valid continuation calls still get their own request IDs and quoted price, but are charged 0. Changing filters starts a new billable request. `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) For later pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response. | | `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":"","page":"","per_page":""}}' ``` ### Intellimatch Search Create an Intellimatch search task using natural language queries. Returns a hash for polling status. `POST /api/intellimatch/search` **Estimated cost:** $0.07 | 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":"","limit":"","config":""}}' ``` --- Full details and an interactive quickstart: https://orthogonal.com/discover/findymail