---
title: "Start async person search by company name, role, geography, and person name. Returns requestId for polling. Pagination billing: call the first page normally and save billing.requestId from the Orthogonal /v1/run response. For later offset or cursor pages of the same search, pass parentRequestId with unchanged search parameters. Valid continuation pages still get their own request IDs and quoted price, but are charged 0. Changing filters starts a new billable search."
method: POST
path: "/nyne/person/search"
tags: ["Nyne.ai"]
---

# Start async person search by company name, role, geography, and person name. Returns requestId for polling. Pagination billing: call the first page normally and save billing.requestId from the Orthogonal /v1/run response. For later offset or cursor pages of the same search, pass parentRequestId with unchanged search parameters. Valid continuation pages still get their own request IDs and quoted price, but are charged 0. Changing filters starts a new billable search.

`POST /nyne/person/search`

## Request

- Base URL: `https://api.orthogonal.com/mpp`
- URL: `https://api.orthogonal.com/mpp/nyne/person/search`
- Auth: none declared
- TypeScript: <https://skmtc.dev/orthogonal/apis/orthogonal-api-marketplace/docs/nyne/person/search/post.ts> (a function with typed inputs; its response is checked against the schema)

## Request body

- object
  - `query` string, required: Natural language search query (max 1000 chars)
  - `limit` integer: Max results per request (default: 10, max: 100)
  - `offset` integer: Starting position in results (default: 0, max: 999). For later pages of the same logical search, keep search filters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response.
  - `cursor` string: Pagination token from a previous response. For continuation billing, keep search filters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response.
  - `request_id` string: Nyne request ID to continue fetching from the same search. For Orthogonal continuation billing, also pass top-level parentRequestId from the first /v1/run response.
  - `force_new` boolean: Force fresh search even if cached (default: false)
  - `type` string: Search tier: light (fastest), medium, premium (best quality). Default: premium
  - `show_emails` boolean: Include email addresses in results (default: false)
  - `show_phone_numbers` boolean: Include phone numbers in results (default: false)
  - `require_emails` boolean: Only return profiles with emails (default: false)
  - `require_phone_numbers` boolean: Only return profiles with phones (default: false)
  - `require_phones_or_emails` boolean: Only return profiles with phone OR email (default: false)
  - `insights` boolean: Include AI-generated relevance insights (default: false, not available for light)
  - `high_freshness` boolean: Prioritize recently updated profiles (default: false, not available for light)
  - `profile_scoring` boolean: Include AI relevance scoring (default: false)
  - `callback_url` string: URL to receive results via webhook
  - `custom_filters` object: Structured filters (locations, industries, titles, etc.)

## Response `200`

Successful response

## Other responses

- `402`: Payment Required (x402 / MPP / np)

## Changes

- **2026-11-08** `857e915717f4`: 1 breaking
  - added required request body

[Operation history](https://skmtc.dev/orthogonal/apis/orthogonal-api-marketplace/changes/nyne/person/search/post.md)

---

[API](https://skmtc.dev/orthogonal/apis/orthogonal-api-marketplace.md) - [All operations](https://skmtc.dev/orthogonal/apis/orthogonal-api-marketplace/llms.txt) - [OpenAPI document](https://skmtc.dev/orthogonal/apis/orthogonal-api-marketplace/revisions/f89fb77710bc?raw)
