# CaptainData — 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) CaptainData API provides people and company enrichment, search, and discovery powered by LinkedIn Sales Navigator data. Find and enrich profiles, search for people and companies, and discover employees. **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 Company Employees List employees of a given company. Returns paginated results. The company_uid path parameter is the LinkedIn company ID (e.g., 1035 for Microsoft), which can be obtained from the Enrich Company or Find Company endpoints (li_company_id field). 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 /companies/{company_uid}/employees` **Estimated cost:** $2.29 | Field | Type | Required | Description | |-------|------|----------|-------------| | `company_uid` | string | Yes | Path parameter — substitute directly into the endpoint `path`. | | `query` | string | No | Optional Sales Navigator People search query to filter employees. | | `cursor` | string | No | Cursor value from X-Pagination-Next response header for pagination. Cursors expire after 24 hours. For later cursor pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response. | | `page_size` | integer | No | Maximum number of results per page. Fixed at 25. | ```bash # Replace {company_uid} in "path" with real values before sending curl -X POST 'https://api.orthogonal.com/v1/run' \ -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"api":"captaindata","path":"/companies/{company_uid}/employees","method":"GET","query":{"query":"","cursor":"","page_size":""}}' ``` ### Find Company Find a company by name. Returns matching company profiles. `GET /companies/find` **Estimated cost:** $0.18 | Field | Type | Required | Description | |-------|------|----------|-------------| | `company_name` | string | Yes | Company name to search for. | ```bash curl -X POST 'https://api.orthogonal.com/v1/run' \ -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"api":"captaindata","path":"/companies/find","method":"GET","query":{"company_name":""}}' ``` ### Search Companies Search and discover companies using a LinkedIn Sales Navigator search query. Returns paginated results. 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 /companies/search` **Estimated cost:** $2.29 | Field | Type | Required | Description | |-------|------|----------|-------------| | `query` | string | Yes | A Sales Navigator Company search compliant query param. Copy the entire value of the query parameter from your LinkedIn Sales Navigator search URL. | | `cursor` | string | No | Cursor value from X-Pagination-Next response header for pagination. Cursors expire after 24 hours. For later cursor pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response. | | `page_size` | integer | No | Maximum number of results per page. Fixed at 25. | ```bash curl -X POST 'https://api.orthogonal.com/v1/run' \ -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"api":"captaindata","path":"/companies/search","method":"GET","query":{"query":"","cursor":"","page_size":""}}' ``` ### Enrich Person Get profile information from a LinkedIn URL. Returns full name, headline, summary, skills, languages, education, experiences, company info, and more. `GET /people/enrich` **Estimated cost:** $0.09 | Field | Type | Required | Description | |-------|------|----------|-------------| | `li_profile_url` | string | Yes | A LinkedIn Profile URL (regular or Sales Navigator format) | ```bash curl -X POST 'https://api.orthogonal.com/v1/run' \ -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"api":"captaindata","path":"/people/enrich","method":"GET","query":{"li_profile_url":""}}' ``` ### Find People Find people by name and optionally company name. Returns matching profiles. `GET /people/find` **Estimated cost:** $0.18 | Field | Type | Required | Description | |-------|------|----------|-------------| | `full_name` | string | Yes | Full name of the person to find. | | `company_name` | string | No | Company name to narrow down the search. | ```bash curl -X POST 'https://api.orthogonal.com/v1/run' \ -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"api":"captaindata","path":"/people/find","method":"GET","query":{"full_name":"","company_name":""}}' ``` ### Search People Search and discover people using a LinkedIn Sales Navigator search query. Returns paginated results with profile summaries. Use the X-Pagination-Next response header cursor for pagination. 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 /people/search` **Estimated cost:** $2.29 | Field | Type | Required | Description | |-------|------|----------|-------------| | `query` | string | Yes | A Sales Navigator People search compliant query param. Copy the entire value of the query parameter from your LinkedIn Sales Navigator search URL (everything after ?query=). | | `cursor` | string | No | Cursor value from X-Pagination-Next response header for pagination. Cursors expire after 24 hours. For later cursor pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response. | | `page_size` | integer | No | Maximum number of results per page. Fixed at 25. | ```bash curl -X POST 'https://api.orthogonal.com/v1/run' \ -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"api":"captaindata","path":"/people/search","method":"GET","query":{"query":"","cursor":"","page_size":""}}' ``` ### Enrich Company Get comprehensive company information from a LinkedIn Company URL. Returns company details, industry, size, and more. `GET /companies/enrich` **Estimated cost:** $0.09 | Field | Type | Required | Description | |-------|------|----------|-------------| | `li_company_url` | string | Yes | A LinkedIn Company URL (should start with https://www.linkedin.com/sales/company/ or similar). | ```bash curl -X POST 'https://api.orthogonal.com/v1/run' \ -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"api":"captaindata","path":"/companies/enrich","method":"GET","query":{"li_company_url":""}}' ``` ### Full Enrich Person Get comprehensive profile information from a LinkedIn URL with additional enrichment data. Returns full name, headline, summary, skills, languages, education, experiences, company info, and more. `GET /people/enrich` **Estimated cost:** $0.18 | Field | Type | Required | Description | |-------|------|----------|-------------| | `li_profile_url` | string | Yes | A LinkedIn Profile URL (regular or Sales Navigator format) | ```bash curl -X POST 'https://api.orthogonal.com/v1/run' \ -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"api":"captaindata","path":"/people/enrich","method":"GET","query":{"li_profile_url":""}}' ``` ### Enrich Person (Full) Get comprehensive profile information from a LinkedIn URL with full enrichment. Returns all standard fields plus additional data including verified emails, phone numbers, and social profiles. `GET /people/enrich` **Estimated cost:** $0.18 | Field | Type | Required | Description | |-------|------|----------|-------------| | `li_profile_url` | string | Yes | A LinkedIn Profile URL (regular or Sales Navigator format) | ```bash curl -X POST 'https://api.orthogonal.com/v1/run' \ -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"api":"captaindata","path":"/people/enrich","method":"GET","query":{"li_profile_url":""}}' ``` --- Full details and an interactive quickstart: https://orthogonal.com/discover/captaindata