# PredictLeads — 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) Company intelligence API providing job openings, news events, financing events, technology detections, connections, products, and more for any company. **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 ### Similar Companies Find companies similar to a given company `GET /v3/companies/{company_id_or_domain}/similar_companies` **Estimated cost:** $0.04 | Field | Type | Required | Description | |-------|------|----------|-------------| | `company_id_or_domain` | string | Yes | Path parameter — substitute directly into the endpoint `path`. | | `limit` | integer | No | | ```bash # Replace {company_id_or_domain} 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":"predictleads","path":"/v3/companies/{company_id_or_domain}/similar_companies","method":"GET","query":{"limit":""}}' ``` ### Company Website Evolution Track website changes over time for a specific company 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 /v3/companies/{company_id_or_domain}/website_evolution` **Estimated cost:** $0.04 | Field | Type | Required | Description | |-------|------|----------|-------------| | `company_id_or_domain` | string | Yes | Path parameter — substitute directly into the endpoint `path`. | | `page` | integer | No | 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. | | `first_seen_at_from` | string | No | | | `first_seen_at_until` | string | No | | | `limit` | integer | No | | ```bash # Replace {company_id_or_domain} 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":"predictleads","path":"/v3/companies/{company_id_or_domain}/website_evolution","method":"GET","query":{"page":"","first_seen_at_from":"","first_seen_at_until":"","limit":""}}' ``` ### Get News Event Get a single news event by ID `GET /v3/news_events/{id}` **Estimated cost:** $0.04 | Field | Type | Required | Description | |-------|------|----------|-------------| | `id` | string | Yes | Path parameter — substitute directly into the endpoint `path`. | ```bash # Replace {id} 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":"predictleads","path":"/v3/news_events/{id}","method":"GET"}' ``` ### Get Product Get a single product by ID `GET /v3/products/{id}` **Estimated cost:** $0.04 | Field | Type | Required | Description | |-------|------|----------|-------------| | `id` | string | Yes | Path parameter — substitute directly into the endpoint `path`. | ```bash # Replace {id} 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":"predictleads","path":"/v3/products/{id}","method":"GET"}' ``` ### Company Financing Events Get financing/funding events for a specific company 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 /v3/companies/{company_id_or_domain}/financing_events` **Estimated cost:** $0.04 | Field | Type | Required | Description | |-------|------|----------|-------------| | `company_id_or_domain` | string | Yes | Path parameter — substitute directly into the endpoint `path`. | | `page` | integer | No | 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. | | `first_seen_at_from` | string | No | | | `first_seen_at_until` | string | No | | | `limit` | integer | No | | ```bash # Replace {company_id_or_domain} 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":"predictleads","path":"/v3/companies/{company_id_or_domain}/financing_events","method":"GET","query":{"page":"","first_seen_at_from":"","first_seen_at_until":"","limit":""}}' ``` ### Get Company Get company profile by ID or domain `GET /v3/companies/{id_or_domain}` **Estimated cost:** $0.04 | Field | Type | Required | Description | |-------|------|----------|-------------| | `id_or_domain` | string | Yes | Path parameter — substitute directly into the endpoint `path`. | ```bash # Replace {id_or_domain} 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":"predictleads","path":"/v3/companies/{id_or_domain}","method":"GET"}' ``` ### Discover Job Openings Search and filter job openings across all companies 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 /v3/discover/job_openings` **Estimated cost:** $0.04 | Field | Type | Required | Description | |-------|------|----------|-------------| | `onet_codes` | string | No | O*NET code (required if location not provided) | | `location` | string | No | Location (required if onet_codes not provided) | | `page` | integer | No | 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. | | `limit` | integer | No | | ```bash curl -X POST 'https://api.orthogonal.com/v1/run' \ -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"api":"predictleads","path":"/v3/discover/job_openings","method":"GET","query":{"onet_codes":"","location":"","page":"","limit":""}}' ``` ### Company Job Openings Get job openings for a specific company 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 /v3/companies/{company_id_or_domain}/job_openings` **Estimated cost:** $0.04 | Field | Type | Required | Description | |-------|------|----------|-------------| | `company_id_or_domain` | string | Yes | Path parameter — substitute directly into the endpoint `path`. | | `page` | integer | No | 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. | | `active_only` | boolean | No | | | `categories` | string | No | | | `first_seen_at_from` | string | No | | | `first_seen_at_until` | string | No | | | `last_seen_at_from` | string | No | | | `last_seen_at_until` | string | No | | | `limit` | integer | No | | | `not_closed` | boolean | No | | | `with_description_only` | boolean | No | | | `with_location_only` | boolean | No | | ```bash # Replace {company_id_or_domain} 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":"predictleads","path":"/v3/companies/{company_id_or_domain}/job_openings","method":"GET","query":{"page":"","active_only":"","categories":"","first_seen_at_from":"","first_seen_at_until":"","last_seen_at_from":"","last_seen_at_until":"","limit":"","not_closed":"","with_description_only":"","with_location_only":""}}' ``` ### Get Job Opening Get a single job opening by ID `GET /v3/job_openings/{id}` **Estimated cost:** $0.04 | Field | Type | Required | Description | |-------|------|----------|-------------| | `id` | string | Yes | Path parameter — substitute directly into the endpoint `path`. | ```bash # Replace {id} 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":"predictleads","path":"/v3/job_openings/{id}","method":"GET"}' ``` ### Company News Events Get news events for a specific company 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 /v3/companies/{company_id_or_domain}/news_events` **Estimated cost:** $0.04 | Field | Type | Required | Description | |-------|------|----------|-------------| | `company_id_or_domain` | string | Yes | Path parameter — substitute directly into the endpoint `path`. | | `page` | integer | No | 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. | | `categories` | string | No | | | `found_at_from` | string | No | | | `found_at_until` | string | No | | | `limit` | integer | No | | ```bash # Replace {company_id_or_domain} 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":"predictleads","path":"/v3/companies/{company_id_or_domain}/news_events","method":"GET","query":{"page":"","categories":"","found_at_from":"","found_at_until":"","limit":""}}' ``` ### Discover Portfolio Connections Discover connections across portfolio companies 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 /v3/discover/portfolio_companies/connections` **Estimated cost:** $0.04 | Field | Type | Required | Description | |-------|------|----------|-------------| | `page` | integer | No | 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. | | `first_seen_at_from` | string | No | | | `first_seen_at_until` | string | No | | | `last_seen_at_from` | string | No | | | `last_seen_at_until` | string | No | | | `limit` | integer | No | | ```bash curl -X POST 'https://api.orthogonal.com/v1/run' \ -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"api":"predictleads","path":"/v3/discover/portfolio_companies/connections","method":"GET","query":{"page":"","first_seen_at_from":"","first_seen_at_until":"","last_seen_at_from":"","last_seen_at_until":"","limit":""}}' ``` ### Company Technology Detections Get technology stack detections for a specific company 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 /v3/companies/{company_id_or_domain}/technology_detections` **Estimated cost:** $0.04 | Field | Type | Required | Description | |-------|------|----------|-------------| | `company_id_or_domain` | string | Yes | Path parameter — substitute directly into the endpoint `path`. | | `page` | integer | No | 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. | | `first_seen_at_from` | string | No | | | `first_seen_at_until` | string | No | | | `last_seen_at_from` | string | No | | | `last_seen_at_until` | string | No | | | `limit` | integer | No | | ```bash # Replace {company_id_or_domain} 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":"predictleads","path":"/v3/companies/{company_id_or_domain}/technology_detections","method":"GET","query":{"page":"","first_seen_at_from":"","first_seen_at_until":"","last_seen_at_from":"","last_seen_at_until":"","limit":""}}' ``` ### Discover Latest Products Discover the latest products across all companies 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 /v3/discover/products/latest` **Estimated cost:** $0.04 | Field | Type | Required | Description | |-------|------|----------|-------------| | `page` | integer | No | 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. | | `first_seen_at_from` | string | No | | | `first_seen_at_until` | string | No | | | `limit` | integer | No | | | `sources` | string | No | | ```bash curl -X POST 'https://api.orthogonal.com/v1/run' \ -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"api":"predictleads","path":"/v3/discover/products/latest","method":"GET","query":{"page":"","first_seen_at_from":"","first_seen_at_until":"","limit":"","sources":""}}' ``` ### Discover Technology Detections Find companies using a specific technology 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 /v3/discover/technologies/{technology_id_or_fuzzy_name}/technology_detections` **Estimated cost:** $0.04 | Field | Type | Required | Description | |-------|------|----------|-------------| | `technology_id_or_fuzzy_name` | string | Yes | Path parameter — substitute directly into the endpoint `path`. | | `page` | integer | No | 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. | | `first_seen_at_from` | string | No | | | `first_seen_at_until` | string | No | | | `last_seen_at_from` | string | No | | | `last_seen_at_until` | string | No | | | `limit` | integer | No | | ```bash # Replace {technology_id_or_fuzzy_name} 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":"predictleads","path":"/v3/discover/technologies/{technology_id_or_fuzzy_name}/technology_detections","method":"GET","query":{"page":"","first_seen_at_from":"","first_seen_at_until":"","last_seen_at_from":"","last_seen_at_until":"","limit":""}}' ``` ### Company GitHub Repositories Get GitHub repositories associated with a company 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 /v3/companies/{company_id_or_domain}/github_repositories` **Estimated cost:** $0.04 | Field | Type | Required | Description | |-------|------|----------|-------------| | `company_id_or_domain` | string | Yes | Path parameter — substitute directly into the endpoint `path`. | | `page` | integer | No | 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. | | `first_seen_at_from` | string | No | | | `first_seen_at_until` | string | No | | | `limit` | integer | No | | ```bash # Replace {company_id_or_domain} 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":"predictleads","path":"/v3/companies/{company_id_or_domain}/github_repositories","method":"GET","query":{"page":"","first_seen_at_from":"","first_seen_at_until":"","limit":""}}' ``` ### Discover Financing Events Search and filter financing events across all companies 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 /v3/discover/financing_events` **Estimated cost:** $0.04 | Field | Type | Required | Description | |-------|------|----------|-------------| | `page` | integer | No | 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. | | `company_location` | string | No | | | `financing_types_normalized` | string | No | | | `limit` | integer | No | | ```bash curl -X POST 'https://api.orthogonal.com/v1/run' \ -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"api":"predictleads","path":"/v3/discover/financing_events","method":"GET","query":{"page":"","company_location":"","financing_types_normalized":"","limit":""}}' ``` ### List Technologies List all tracked technologies 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 /v3/technologies` **Estimated cost:** $0.04 | Field | Type | Required | Description | |-------|------|----------|-------------| | `page` | integer | No | 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. | | `fuzzy_name` | string | No | | | `limit` | integer | No | | | `order_by` | string | No | | ```bash curl -X POST 'https://api.orthogonal.com/v1/run' \ -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"api":"predictleads","path":"/v3/technologies","method":"GET","query":{"page":"","fuzzy_name":"","limit":"","order_by":""}}' ``` ### Get Technology Get a specific technology by ID or name `GET /v3/technologies/{id_or_fuzzy_name}` **Estimated cost:** $0.04 | Field | Type | Required | Description | |-------|------|----------|-------------| | `id_or_fuzzy_name` | string | Yes | Path parameter — substitute directly into the endpoint `path`. | ```bash # Replace {id_or_fuzzy_name} 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":"predictleads","path":"/v3/technologies/{id_or_fuzzy_name}","method":"GET"}' ``` ### Company Connections Get business connections for a specific company 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 /v3/companies/{company_id_or_domain}/connections` **Estimated cost:** $0.04 | Field | Type | Required | Description | |-------|------|----------|-------------| | `company_id_or_domain` | string | Yes | Path parameter — substitute directly into the endpoint `path`. | | `page` | integer | No | 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. | | `categories` | string | No | | | `first_seen_at_from` | string | No | | | `first_seen_at_until` | string | No | | | `limit` | integer | No | | ```bash # Replace {company_id_or_domain} 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":"predictleads","path":"/v3/companies/{company_id_or_domain}/connections","method":"GET","query":{"page":"","categories":"","first_seen_at_from":"","first_seen_at_until":"","limit":""}}' ``` ### Discover News Events Search and filter news events across all companies 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 /v3/discover/news_events` **Estimated cost:** $0.04 | Field | Type | Required | Description | |-------|------|----------|-------------| | `page` | integer | No | 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. | | `categories` | string | No | | | `company_location` | string | No | | | `limit` | integer | No | | ```bash curl -X POST 'https://api.orthogonal.com/v1/run' \ -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"api":"predictleads","path":"/v3/discover/news_events","method":"GET","query":{"page":"","categories":"","company_location":"","limit":""}}' ``` ### Company Products Get products associated with a company 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 /v3/companies/{company_id_or_domain}/products` **Estimated cost:** $0.04 | Field | Type | Required | Description | |-------|------|----------|-------------| | `company_id_or_domain` | string | Yes | Path parameter — substitute directly into the endpoint `path`. | | `page` | integer | No | 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. | | `first_seen_at_from` | string | No | | | `first_seen_at_until` | string | No | | | `limit` | integer | No | | ```bash # Replace {company_id_or_domain} 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":"predictleads","path":"/v3/companies/{company_id_or_domain}/products","method":"GET","query":{"page":"","first_seen_at_from":"","first_seen_at_until":"","limit":""}}' ``` ### Discover Startup Platform Posts Discover posts from startup platforms (Product Hunt, Hacker News, etc.) 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 /v3/discover/startup_platform_posts` **Estimated cost:** $0.04 | Field | Type | Required | Description | |-------|------|----------|-------------| | `page` | integer | No | 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. | | `limit` | integer | No | | | `post_types` | string | No | | | `published_at_from` | string | No | | | `published_at_until` | string | No | | ```bash curl -X POST 'https://api.orthogonal.com/v1/run' \ -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"api":"predictleads","path":"/v3/discover/startup_platform_posts","method":"GET","query":{"page":"","limit":"","post_types":"","published_at_from":"","published_at_until":""}}' ``` ### Discover Companies Search and filter companies 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 /v3/discover/companies` **Estimated cost:** $0.04 | Field | Type | Required | Description | |-------|------|----------|-------------| | `location` | string | Yes | | | `sizes` | string | Yes | | | `page` | integer | No | 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. | | `limit` | integer | No | | ```bash curl -X POST 'https://api.orthogonal.com/v1/run' \ -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"api":"predictleads","path":"/v3/discover/companies","method":"GET","query":{"location":"","sizes":"","page":"","limit":""}}' ``` --- Full details and an interactive quickstart: https://orthogonal.com/discover/predictleads