Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.descovo.com/llms.txt

Use this file to discover all available pages before exploring further.

The people search endpoint lets you find professionals matching a combination of filters: job titles, countries, years of experience, industry tags, education, and current employer. Results are returned as enriched profile objects with pagination support. Credits are charged per profile the API returns — not per request — so narrower filters keep costs predictable. Endpoint: POST https://api.descovo.com/v1/people-search
Auth: apiKey in the request body

Request parameters

apiKey
string
required
Your Descovo API key. See Authentication.
searchParams
object
required
People filter criteria. All sub-fields are optional; combine them to narrow results.
currentCompanies
object[]
Restrict results to profiles who currently work at specific companies. Each entry can include any combination of identifiers — Descovo will resolve them to robust internal IDs.
prospectExclusionListIDs
string[]
IDs of saved exclusion lists. Profiles on these lists are removed from results.
companyExclusionListIDs
string[]
IDs of saved company exclusion lists. Profiles who work at excluded companies are removed from results.
pageSize
number
default:"25"
Number of profiles to return per page. Maximum is 1000.
cursor
string
Pagination cursor from the previous response’s nextCursor. Omit or pass null for the first page.

Response fields

output
object
chargeInfo
object
Credit charge details for this request.

Example

Request: find VP Engineering profiles at US AI companies
{
  "apiKey": "sk_live_xxx",
  "searchParams": {
    "jobTitleV2": {
      "included": [
        "VP Engineering",
        "VP of Engineering",
        "Head of Engineering"
      ],
      "excluded": ["Recruiter", "HR"]
    },
    "country3LetterCode": ["USA"],
    "yearsOfExperience": {
      "min": 5
    },
    "tags": {
      "anyOf": ["artificial-intelligence", "machine-learning"]
    }
  },
  "pageSize": 25,
  "cursor": null,
  "currentCompanies": [],
  "prospectExclusionListIDs": [],
  "companyExclusionListIDs": []
}
Response:
{
  "output": {
    "data": [
      {
        "first_name": "Alice",
        "last_name": "Smith",
        "title": "VP Engineering",
        "headline": "VP Engineering at Descovo AI",
        "location": {
          "city": "San Francisco",
          "country_code": "US"
        },
        "current_company": {
          "name": "Descovo AI",
          "linkedin_slug": "descovo-ai",
          "domain": "descovo.ai"
        },
        "languages": [
          {
            "name": "English",
            "proficiency_name": "Native or bilingual proficiency"
          }
        ],
        "detailed_education": null,
        "detailed_work_experiences": null
      }
    ],
    "nextCursor": "eyJsYXN0X3NvcnRfa2V5IjoiYWJjMTIzIn0"
  },
  "chargeInfo": {
    "method": "charged-now",
    "creditsCharged": 25
  }
}

Notes

For large-scale prospecting — thousands of profiles — consider using an audience workflow instead of paginating through raw search results. Audiences let you save the result set and run enrichment and exports without holding everything in memory.
  • Credits are charged per profile returned. Use a small pageSize while validating your filters to avoid unnecessary charges.
  • Keep searchParams identical between pages; only change cursor. Changing filters mid-pagination produces inconsistent results.
  • See Pagination for the full cursor-based pagination model.
  • See Credits for per-operation costs.