Search for people matching specific criteria
Search for people matching specific criteria. Supports filters for company domains, job titles, countries, states, cities, seniority, and more. Max 10,000 results via page-based pagination. Use the scroll endpoint for larger result sets. 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. | ERROR: Unable to calculate price.
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
POST https://x402.orthogonal.com/company-enrich/people/search
| Category | Company and compliance |
|---|---|
| Provider host | x402.orthogonal.com |
| Networks | eip155:143, eip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp |
| Payment schemes | exact |
| Self-reported calls, 30 days | 6 from 1 payers (the provider's figure, not ours) |
Our checks, last 30 days
| Day | Result | HTTP | Asked | Time |
|---|---|---|---|---|
| 2026-09-29 | valid payment request | 402 | $0.0245 | 262 ms |
Example input (from the provider)
{
"body": {
"pageSize": 0
},
"bodyType": "json",
"method": "POST",
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"properties": {
"atCurrentCompanyAfter": {
"description": "Filter by current company join date - only include people who joined after this UTC date",
"type": "string"
},
"atCurrentCompanyBefore": {
"description": "Filter by current company join date - only include people who joined before this UTC date",
"type": "string"
},
"atCurrentPositionAfter": {
"description": "Filter by current position start date - only include people who started after this UTC date",
"type": "string"
},
"atCurrentPositionBefore": {
"description": "Filter by current position start date - only include people who started before this UTC date",
"type": "string"
},
"companyFilter": {
"description": "The filters to be applied on the companies to find people for",
"type": "object"
},
"countries": {
"description": "The 2 letter country codes to filter by",
"type": "array"
},
"department": {
"description": "The departments to filter by",
"type": "array"
},
"domains": {
"description": "The domains to find people for. Up to 100 domains are allowed.",
"type": "array"
},
"exclude": {
"description": "Exclusion filters to apply on the people. If a person matches any of the filters here, it will be excluded from the results.",
"type": "object"
},
"page": {
"description": "The page number to return. Must be greater than 0 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.",
"type": "integer"
},
"pageSize": {
"description": "REQUIRED. Number of results per page (1-100). Determines cost: 2 credits ($0.0245) per result returned. Total call cost = pageSize x per-result cost.",
"type": "integer"
},
"positionQuery": {
"description": "The list of search queries to apply on the person's current job position/title",
"type": "array"
},
"query": {
"description": "The search query to apply on the company name and domain",
"type": "string"
},
"seniority": {
"description": "The seniorities to filter by",
"type": "array"
}
},
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}