> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.aventure.vc/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.aventure.vc/_mcp/server.

# Search People

POST https://api.aventure.vc/v1/people/search
Content-Type: application/json

Searches, filters, or browses people and returns a page of people matching the filters in the request body. semanticQuery uses the live priority embeddings tier and returns semanticMatch evidence. Without semanticQuery or search, a default-sorted page emits an X-Next-Cursor keyset continuation; send it back as cursor, without sort, to read the next page.

Reference: https://docs.aventure.vc/api-reference/people/search-people

## Authentication

- `Authorization` header (bearer token, required) — Your aVenture API key (https://aventure.vc/settings/api-keys) or OAuth access token

## Request

### Query parameters

- `page` (integer, optional) — Zero-based page index for offset paging; omit it for the first page. Ignored when cursor is sent: to continue a cursor traversal, send the X-Next-Cursor value as cursor and leave page out.
- `countOnly` (boolean, optional) — When true, return only the page total in the body and skip the content payload.
- `hasImageFirst` (boolean, optional) — When true, sort people who have a photo before those who do not.
- `permitMonogram` (boolean, optional) — When false, monogram fallback logos are stripped from the response. Defaults to true.
- `cursor` (string, optional) — Opaque continuation from X-Next-Cursor. Repeat the same filters and size; a semantic cursor also repeats sort, a keyset cursor omits it.
- `size` (integer, optional, default: 20) — The size of the page to be returned
- `sort` (list of string, optional) — Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.

### Body (application/json)

This endpoint expects a PersonFilter.

- `additionalAssociation` (EntityPersonAssociationFilter, optional, nullable) — Require a second, independent association of the same person, AND-ed with the primary association constraints, e.g. a past employer.
- `arrayFilter` (PersonListArrayFilter, optional) — Array and range filters
- `entityFilter` (EntityFilter, optional) — Constraints on the associated entity, as on POST /v1/search/natural/entities: a person matches when an association (current by default; selectable with tenure) points at an entity matching every field and visible in entity listings, such as yearFoundedRange, hasFundraising, or fundraiseActivity.totalRaisedRange. Omit for no associated-entity constraint.
- `entityId` (string, optional, nullable) — Associated entity UUID.
- `entitySlug` (string, optional, nullable) — Associated entity slug.
- `firstName` (string, optional, nullable) — Person first name.
- `includeAddress` (boolean, optional, nullable) — Include addresses on each person
- `includeUrl` (boolean, optional, nullable) — Include URL links on each person
- `investorActivity` (InvestorActivityFilter, optional) — Aggregate investor activity filters.
- `isCurrent` (boolean, optional, nullable) — Legacy tenure filter; omit when selecting tenure explicitly.
- `lastName` (string, optional, nullable) — Person last name.
- `letter` (string, optional, nullable) — First-name initial.
- `nameQuery` (string, optional, nullable) — Name eligibility independent of search; preserve it on replay.
- `personId` (list of string, optional) — Specific person IDs; omit or use [] for no restriction.
- `personName` (list of string, optional) — Exact normalized match against a person's full name or slug.
- `rankByEmployer` (boolean, optional, nullable) — Rank people who run the most prominent matching employers first, ahead of sort (founders and management, then other operators, then board seats). Applies only when entityId, entitySlug, arrayFilter.entityName, or the entityId, slug, entityName, or fundraiseActivity.investorEntityId or investorName of entityFilter or additionalAssociation.entityFilter names the employers.
- `role` (string, optional, nullable) — Associated entity role or title.
- `search` (string, optional, nullable) — Search keyword or phrase. Single characters valid; stop words rejected.
- `semanticQuery` (string, optional, nullable) — Semantic person search phrase. A semantic page ranks a bounded nearest-neighbor window: totalElements counts the ranked candidates reachable through continuation, not every matching person.
- `status` (string, optional, nullable) — Person workflow status.
- `tenure` (enum, optional, nullable) — Tenure of the association title and employer match: CURRENT, PAST, or ANY. Omitted, titles match any tenure and employers current; isCurrent must agree.
  - Allowed values: `CURRENT`, `PAST`, `ANY`

## Response

### 200

OK

- `content` (list of Person, optional)
- `empty` (boolean, optional)
- `first` (boolean, optional)
- `last` (boolean, optional)
- `number` (integer, optional)
- `numberOfElements` (integer, optional)
- `pageable` (PageableObject, optional)
- `size` (integer, optional)
- `sort` (SortObject, optional)
- `totalElements` (long, optional)
- `totalPages` (integer, optional)

## Errors

### 400 Bad Request Error

Bad Request

- `allowanceType` (string, optional, nullable) — Which monthly allowance a BILLING_ALLOWANCE refusal exhausted.
- `campusProofRefusal` (string, optional, nullable) — For a school campus lookup (NCES records), the evidence from the campus's own website that is still missing; absent for other failures.
- `circuitBreaker` (string, optional, nullable)
- `code` (string, optional, nullable) — Machine-readable secondary code on ProblemDetail.code. Agents should branch on this value when the HTTP status alone does not identify the recovery path. Many codes describe server-side conditions a caller cannot fix: surface them and stop.
- `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Record that currently uses this slug
- `coveringRunId` (string, optional, nullable) — The caller's own queued or running research request that already covers the record on a harness-run-already-requested problem; absent when another requester or aVenture filed it, and for every other problem.
- `detail` (string, optional)
- `details` (DomainConflictDetails, optional, nullable) — Structured conflict details. A possible duplicate or an ambiguous lookup returns its candidate records; score and threshold rank the candidates and do not prove that the requested record is absent.
- `disposition` (enum, optional) — Whether this classified failure can be retried.
  - Allowed values: `TRANSIENT`, `TERMINAL`
- `error` (map from string to string, optional, nullable)
- `existingRecordId` (string, optional, nullable) — On a duplicate 409, the id of the stored record the request collided with; read or update that record instead of creating it again. Absent when the conflict names no single stored record.
- `existingRedirect` (RedirectSlugPath, optional, nullable) — Redirect slug path
- `feId` (string, optional, nullable)
- `field` (string, optional, nullable) — Rejected input field. With type validation-failed, nameBrand/nameLegal/nameAlias means entity-name or identity admission refused the requested record mutation before its write transaction. Other field and type combinations make no such promise.
- `filedRunId` (list of string, optional, nullable) — Research request ids a batch filed or reused for its other records before returning this error; absent for every other error.
- `hammingDistance` (long, optional, nullable)
- `hint` (string, optional, nullable)
- `instance` (string, optional)
- `limit` (long, optional, nullable) — Cap the limitType meter allows for its current period.
- `limitType` (string, optional, nullable) — Which meter refused the request; names what limit/used/remaining count.
- `matchedBlocklistKey` (string, optional, nullable)
- `mediaType` (string, optional, nullable)
- `moderationReason` (string, optional, nullable)
- `mutationNotApplied` (boolean, optional, nullable) — True only when the operation owner proves that none of the requested record mutations committed. Preparation may have stored source documents or temporary assets. Absent when the mutation outcome is unknown; disposition alone makes no such promise.
- `path` (string, optional, nullable)
- `properties` (map from string to any, optional)
- `proseViolation` (list of ProseViolation, optional, nullable) — Every rejected passage of a PROSE_REJECTED write, once per problem it shows; absent for every other problem.
- `remaining` (long, optional, nullable) — Cap minus used for the limitType meter, never negative.
- `requiredRole` (string, optional, nullable)
- `resetAt` (datetime, optional, nullable) — When the limitType meter refills and the request can succeed again.
- `resolution` (ProblemResolution, optional, nullable) — Machine-readable next action for an aVenture ProblemDetail. For reviewCandidates, inspect ProblemDetail.details candidates and decide update, create-with-override, or block from those returned records.
- `retryAfterSeconds` (long, optional, nullable) — Seconds to wait before the same request can succeed. A BILLING_ALLOWANCE meter resets at the UTC month boundary, so this reaches weeks: read limitType before treating it as a burst backoff.
- `spanId` (string, optional, nullable)
- `status` (integer, optional)
- `suggestion` (string, optional, nullable)
- `suggestions` (map from string to string, optional, nullable)
- `suspectedFragment` (string, optional, nullable)
- `title` (string, optional)
- `traceId` (string, optional, nullable)
- `type` (string, optional)
- `unknownParameters` (list of string, optional, nullable)
- `unmetGateId` (list of string, optional, nullable) — On a task-completion 409, the ids of the completion checks that did not pass; absent for every other problem.
- `used` (long, optional, nullable) — Requests already charged against the limitType meter this period.
- `validParameters` (list of string, optional, nullable)
- `value` (string, optional, nullable)
- `windowSeconds` (long, optional, nullable) — Length of a rolling throttle window; absent for period meters.

### 401 Unauthorized Error

Unauthorized

- `allowanceType` (string, optional, nullable) — Which monthly allowance a BILLING_ALLOWANCE refusal exhausted.
- `campusProofRefusal` (string, optional, nullable) — For a school campus lookup (NCES records), the evidence from the campus's own website that is still missing; absent for other failures.
- `circuitBreaker` (string, optional, nullable)
- `code` (string, optional, nullable) — Machine-readable secondary code on ProblemDetail.code. Agents should branch on this value when the HTTP status alone does not identify the recovery path. Many codes describe server-side conditions a caller cannot fix: surface them and stop.
- `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Record that currently uses this slug
- `coveringRunId` (string, optional, nullable) — The caller's own queued or running research request that already covers the record on a harness-run-already-requested problem; absent when another requester or aVenture filed it, and for every other problem.
- `detail` (string, optional)
- `details` (DomainConflictDetails, optional, nullable) — Structured conflict details. A possible duplicate or an ambiguous lookup returns its candidate records; score and threshold rank the candidates and do not prove that the requested record is absent.
- `disposition` (enum, optional) — Whether this classified failure can be retried.
  - Allowed values: `TRANSIENT`, `TERMINAL`
- `error` (map from string to string, optional, nullable)
- `existingRecordId` (string, optional, nullable) — On a duplicate 409, the id of the stored record the request collided with; read or update that record instead of creating it again. Absent when the conflict names no single stored record.
- `existingRedirect` (RedirectSlugPath, optional, nullable) — Redirect slug path
- `feId` (string, optional, nullable)
- `field` (string, optional, nullable) — Rejected input field. With type validation-failed, nameBrand/nameLegal/nameAlias means entity-name or identity admission refused the requested record mutation before its write transaction. Other field and type combinations make no such promise.
- `filedRunId` (list of string, optional, nullable) — Research request ids a batch filed or reused for its other records before returning this error; absent for every other error.
- `hammingDistance` (long, optional, nullable)
- `hint` (string, optional, nullable)
- `instance` (string, optional)
- `limit` (long, optional, nullable) — Cap the limitType meter allows for its current period.
- `limitType` (string, optional, nullable) — Which meter refused the request; names what limit/used/remaining count.
- `matchedBlocklistKey` (string, optional, nullable)
- `mediaType` (string, optional, nullable)
- `moderationReason` (string, optional, nullable)
- `mutationNotApplied` (boolean, optional, nullable) — True only when the operation owner proves that none of the requested record mutations committed. Preparation may have stored source documents or temporary assets. Absent when the mutation outcome is unknown; disposition alone makes no such promise.
- `path` (string, optional, nullable)
- `properties` (map from string to any, optional)
- `proseViolation` (list of ProseViolation, optional, nullable) — Every rejected passage of a PROSE_REJECTED write, once per problem it shows; absent for every other problem.
- `remaining` (long, optional, nullable) — Cap minus used for the limitType meter, never negative.
- `requiredRole` (string, optional, nullable)
- `resetAt` (datetime, optional, nullable) — When the limitType meter refills and the request can succeed again.
- `resolution` (ProblemResolution, optional, nullable) — Machine-readable next action for an aVenture ProblemDetail. For reviewCandidates, inspect ProblemDetail.details candidates and decide update, create-with-override, or block from those returned records.
- `retryAfterSeconds` (long, optional, nullable) — Seconds to wait before the same request can succeed. A BILLING_ALLOWANCE meter resets at the UTC month boundary, so this reaches weeks: read limitType before treating it as a burst backoff.
- `spanId` (string, optional, nullable)
- `status` (integer, optional)
- `suggestion` (string, optional, nullable)
- `suggestions` (map from string to string, optional, nullable)
- `suspectedFragment` (string, optional, nullable)
- `title` (string, optional)
- `traceId` (string, optional, nullable)
- `type` (string, optional)
- `unknownParameters` (list of string, optional, nullable)
- `unmetGateId` (list of string, optional, nullable) — On a task-completion 409, the ids of the completion checks that did not pass; absent for every other problem.
- `used` (long, optional, nullable) — Requests already charged against the limitType meter this period.
- `validParameters` (list of string, optional, nullable)
- `value` (string, optional, nullable)
- `windowSeconds` (long, optional, nullable) — Length of a rolling throttle window; absent for period meters.

### 403 Forbidden Error

Forbidden

- `allowanceType` (string, optional, nullable) — Which monthly allowance a BILLING_ALLOWANCE refusal exhausted.
- `campusProofRefusal` (string, optional, nullable) — For a school campus lookup (NCES records), the evidence from the campus's own website that is still missing; absent for other failures.
- `circuitBreaker` (string, optional, nullable)
- `code` (string, optional, nullable) — Machine-readable secondary code on ProblemDetail.code. Agents should branch on this value when the HTTP status alone does not identify the recovery path. Many codes describe server-side conditions a caller cannot fix: surface them and stop.
- `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Record that currently uses this slug
- `coveringRunId` (string, optional, nullable) — The caller's own queued or running research request that already covers the record on a harness-run-already-requested problem; absent when another requester or aVenture filed it, and for every other problem.
- `detail` (string, optional)
- `details` (DomainConflictDetails, optional, nullable) — Structured conflict details. A possible duplicate or an ambiguous lookup returns its candidate records; score and threshold rank the candidates and do not prove that the requested record is absent.
- `disposition` (enum, optional) — Whether this classified failure can be retried.
  - Allowed values: `TRANSIENT`, `TERMINAL`
- `error` (map from string to string, optional, nullable)
- `existingRecordId` (string, optional, nullable) — On a duplicate 409, the id of the stored record the request collided with; read or update that record instead of creating it again. Absent when the conflict names no single stored record.
- `existingRedirect` (RedirectSlugPath, optional, nullable) — Redirect slug path
- `feId` (string, optional, nullable)
- `field` (string, optional, nullable) — Rejected input field. With type validation-failed, nameBrand/nameLegal/nameAlias means entity-name or identity admission refused the requested record mutation before its write transaction. Other field and type combinations make no such promise.
- `filedRunId` (list of string, optional, nullable) — Research request ids a batch filed or reused for its other records before returning this error; absent for every other error.
- `hammingDistance` (long, optional, nullable)
- `hint` (string, optional, nullable)
- `instance` (string, optional)
- `limit` (long, optional, nullable) — Cap the limitType meter allows for its current period.
- `limitType` (string, optional, nullable) — Which meter refused the request; names what limit/used/remaining count.
- `matchedBlocklistKey` (string, optional, nullable)
- `mediaType` (string, optional, nullable)
- `moderationReason` (string, optional, nullable)
- `mutationNotApplied` (boolean, optional, nullable) — True only when the operation owner proves that none of the requested record mutations committed. Preparation may have stored source documents or temporary assets. Absent when the mutation outcome is unknown; disposition alone makes no such promise.
- `path` (string, optional, nullable)
- `properties` (map from string to any, optional)
- `proseViolation` (list of ProseViolation, optional, nullable) — Every rejected passage of a PROSE_REJECTED write, once per problem it shows; absent for every other problem.
- `remaining` (long, optional, nullable) — Cap minus used for the limitType meter, never negative.
- `requiredRole` (string, optional, nullable)
- `resetAt` (datetime, optional, nullable) — When the limitType meter refills and the request can succeed again.
- `resolution` (ProblemResolution, optional, nullable) — Machine-readable next action for an aVenture ProblemDetail. For reviewCandidates, inspect ProblemDetail.details candidates and decide update, create-with-override, or block from those returned records.
- `retryAfterSeconds` (long, optional, nullable) — Seconds to wait before the same request can succeed. A BILLING_ALLOWANCE meter resets at the UTC month boundary, so this reaches weeks: read limitType before treating it as a burst backoff.
- `spanId` (string, optional, nullable)
- `status` (integer, optional)
- `suggestion` (string, optional, nullable)
- `suggestions` (map from string to string, optional, nullable)
- `suspectedFragment` (string, optional, nullable)
- `title` (string, optional)
- `traceId` (string, optional, nullable)
- `type` (string, optional)
- `unknownParameters` (list of string, optional, nullable)
- `unmetGateId` (list of string, optional, nullable) — On a task-completion 409, the ids of the completion checks that did not pass; absent for every other problem.
- `used` (long, optional, nullable) — Requests already charged against the limitType meter this period.
- `validParameters` (list of string, optional, nullable)
- `value` (string, optional, nullable)
- `windowSeconds` (long, optional, nullable) — Length of a rolling throttle window; absent for period meters.

### 406 Not Acceptable Error

Not Acceptable

- `allowanceType` (string, optional, nullable) — Which monthly allowance a BILLING_ALLOWANCE refusal exhausted.
- `campusProofRefusal` (string, optional, nullable) — For a school campus lookup (NCES records), the evidence from the campus's own website that is still missing; absent for other failures.
- `circuitBreaker` (string, optional, nullable)
- `code` (string, optional, nullable) — Machine-readable secondary code on ProblemDetail.code. Agents should branch on this value when the HTTP status alone does not identify the recovery path. Many codes describe server-side conditions a caller cannot fix: surface them and stop.
- `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Record that currently uses this slug
- `coveringRunId` (string, optional, nullable) — The caller's own queued or running research request that already covers the record on a harness-run-already-requested problem; absent when another requester or aVenture filed it, and for every other problem.
- `detail` (string, optional)
- `details` (DomainConflictDetails, optional, nullable) — Structured conflict details. A possible duplicate or an ambiguous lookup returns its candidate records; score and threshold rank the candidates and do not prove that the requested record is absent.
- `disposition` (enum, optional) — Whether this classified failure can be retried.
  - Allowed values: `TRANSIENT`, `TERMINAL`
- `error` (map from string to string, optional, nullable)
- `existingRecordId` (string, optional, nullable) — On a duplicate 409, the id of the stored record the request collided with; read or update that record instead of creating it again. Absent when the conflict names no single stored record.
- `existingRedirect` (RedirectSlugPath, optional, nullable) — Redirect slug path
- `feId` (string, optional, nullable)
- `field` (string, optional, nullable) — Rejected input field. With type validation-failed, nameBrand/nameLegal/nameAlias means entity-name or identity admission refused the requested record mutation before its write transaction. Other field and type combinations make no such promise.
- `filedRunId` (list of string, optional, nullable) — Research request ids a batch filed or reused for its other records before returning this error; absent for every other error.
- `hammingDistance` (long, optional, nullable)
- `hint` (string, optional, nullable)
- `instance` (string, optional)
- `limit` (long, optional, nullable) — Cap the limitType meter allows for its current period.
- `limitType` (string, optional, nullable) — Which meter refused the request; names what limit/used/remaining count.
- `matchedBlocklistKey` (string, optional, nullable)
- `mediaType` (string, optional, nullable)
- `moderationReason` (string, optional, nullable)
- `mutationNotApplied` (boolean, optional, nullable) — True only when the operation owner proves that none of the requested record mutations committed. Preparation may have stored source documents or temporary assets. Absent when the mutation outcome is unknown; disposition alone makes no such promise.
- `path` (string, optional, nullable)
- `properties` (map from string to any, optional)
- `proseViolation` (list of ProseViolation, optional, nullable) — Every rejected passage of a PROSE_REJECTED write, once per problem it shows; absent for every other problem.
- `remaining` (long, optional, nullable) — Cap minus used for the limitType meter, never negative.
- `requiredRole` (string, optional, nullable)
- `resetAt` (datetime, optional, nullable) — When the limitType meter refills and the request can succeed again.
- `resolution` (ProblemResolution, optional, nullable) — Machine-readable next action for an aVenture ProblemDetail. For reviewCandidates, inspect ProblemDetail.details candidates and decide update, create-with-override, or block from those returned records.
- `retryAfterSeconds` (long, optional, nullable) — Seconds to wait before the same request can succeed. A BILLING_ALLOWANCE meter resets at the UTC month boundary, so this reaches weeks: read limitType before treating it as a burst backoff.
- `spanId` (string, optional, nullable)
- `status` (integer, optional)
- `suggestion` (string, optional, nullable)
- `suggestions` (map from string to string, optional, nullable)
- `suspectedFragment` (string, optional, nullable)
- `title` (string, optional)
- `traceId` (string, optional, nullable)
- `type` (string, optional)
- `unknownParameters` (list of string, optional, nullable)
- `unmetGateId` (list of string, optional, nullable) — On a task-completion 409, the ids of the completion checks that did not pass; absent for every other problem.
- `used` (long, optional, nullable) — Requests already charged against the limitType meter this period.
- `validParameters` (list of string, optional, nullable)
- `value` (string, optional, nullable)
- `windowSeconds` (long, optional, nullable) — Length of a rolling throttle window; absent for period meters.

### 409 Conflict Error

Conflict

- `allowanceType` (string, optional, nullable) — Which monthly allowance a BILLING_ALLOWANCE refusal exhausted.
- `campusProofRefusal` (string, optional, nullable) — For a school campus lookup (NCES records), the evidence from the campus's own website that is still missing; absent for other failures.
- `circuitBreaker` (string, optional, nullable)
- `code` (string, optional, nullable) — Machine-readable secondary code on ProblemDetail.code. Agents should branch on this value when the HTTP status alone does not identify the recovery path. Many codes describe server-side conditions a caller cannot fix: surface them and stop.
- `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Record that currently uses this slug
- `coveringRunId` (string, optional, nullable) — The caller's own queued or running research request that already covers the record on a harness-run-already-requested problem; absent when another requester or aVenture filed it, and for every other problem.
- `detail` (string, optional)
- `details` (DomainConflictDetails, optional, nullable) — Structured conflict details. A possible duplicate or an ambiguous lookup returns its candidate records; score and threshold rank the candidates and do not prove that the requested record is absent.
- `disposition` (enum, optional) — Whether this classified failure can be retried.
  - Allowed values: `TRANSIENT`, `TERMINAL`
- `error` (map from string to string, optional, nullable)
- `existingRecordId` (string, optional, nullable) — On a duplicate 409, the id of the stored record the request collided with; read or update that record instead of creating it again. Absent when the conflict names no single stored record.
- `existingRedirect` (RedirectSlugPath, optional, nullable) — Redirect slug path
- `feId` (string, optional, nullable)
- `field` (string, optional, nullable) — Rejected input field. With type validation-failed, nameBrand/nameLegal/nameAlias means entity-name or identity admission refused the requested record mutation before its write transaction. Other field and type combinations make no such promise.
- `filedRunId` (list of string, optional, nullable) — Research request ids a batch filed or reused for its other records before returning this error; absent for every other error.
- `hammingDistance` (long, optional, nullable)
- `hint` (string, optional, nullable)
- `instance` (string, optional)
- `limit` (long, optional, nullable) — Cap the limitType meter allows for its current period.
- `limitType` (string, optional, nullable) — Which meter refused the request; names what limit/used/remaining count.
- `matchedBlocklistKey` (string, optional, nullable)
- `mediaType` (string, optional, nullable)
- `moderationReason` (string, optional, nullable)
- `mutationNotApplied` (boolean, optional, nullable) — True only when the operation owner proves that none of the requested record mutations committed. Preparation may have stored source documents or temporary assets. Absent when the mutation outcome is unknown; disposition alone makes no such promise.
- `path` (string, optional, nullable)
- `properties` (map from string to any, optional)
- `proseViolation` (list of ProseViolation, optional, nullable) — Every rejected passage of a PROSE_REJECTED write, once per problem it shows; absent for every other problem.
- `remaining` (long, optional, nullable) — Cap minus used for the limitType meter, never negative.
- `requiredRole` (string, optional, nullable)
- `resetAt` (datetime, optional, nullable) — When the limitType meter refills and the request can succeed again.
- `resolution` (ProblemResolution, optional, nullable) — Machine-readable next action for an aVenture ProblemDetail. For reviewCandidates, inspect ProblemDetail.details candidates and decide update, create-with-override, or block from those returned records.
- `retryAfterSeconds` (long, optional, nullable) — Seconds to wait before the same request can succeed. A BILLING_ALLOWANCE meter resets at the UTC month boundary, so this reaches weeks: read limitType before treating it as a burst backoff.
- `spanId` (string, optional, nullable)
- `status` (integer, optional)
- `suggestion` (string, optional, nullable)
- `suggestions` (map from string to string, optional, nullable)
- `suspectedFragment` (string, optional, nullable)
- `title` (string, optional)
- `traceId` (string, optional, nullable)
- `type` (string, optional)
- `unknownParameters` (list of string, optional, nullable)
- `unmetGateId` (list of string, optional, nullable) — On a task-completion 409, the ids of the completion checks that did not pass; absent for every other problem.
- `used` (long, optional, nullable) — Requests already charged against the limitType meter this period.
- `validParameters` (list of string, optional, nullable)
- `value` (string, optional, nullable)
- `windowSeconds` (long, optional, nullable) — Length of a rolling throttle window; absent for period meters.

### 415 Unsupported Media Type Error

Unsupported Media Type

- `allowanceType` (string, optional, nullable) — Which monthly allowance a BILLING_ALLOWANCE refusal exhausted.
- `campusProofRefusal` (string, optional, nullable) — For a school campus lookup (NCES records), the evidence from the campus's own website that is still missing; absent for other failures.
- `circuitBreaker` (string, optional, nullable)
- `code` (string, optional, nullable) — Machine-readable secondary code on ProblemDetail.code. Agents should branch on this value when the HTTP status alone does not identify the recovery path. Many codes describe server-side conditions a caller cannot fix: surface them and stop.
- `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Record that currently uses this slug
- `coveringRunId` (string, optional, nullable) — The caller's own queued or running research request that already covers the record on a harness-run-already-requested problem; absent when another requester or aVenture filed it, and for every other problem.
- `detail` (string, optional)
- `details` (DomainConflictDetails, optional, nullable) — Structured conflict details. A possible duplicate or an ambiguous lookup returns its candidate records; score and threshold rank the candidates and do not prove that the requested record is absent.
- `disposition` (enum, optional) — Whether this classified failure can be retried.
  - Allowed values: `TRANSIENT`, `TERMINAL`
- `error` (map from string to string, optional, nullable)
- `existingRecordId` (string, optional, nullable) — On a duplicate 409, the id of the stored record the request collided with; read or update that record instead of creating it again. Absent when the conflict names no single stored record.
- `existingRedirect` (RedirectSlugPath, optional, nullable) — Redirect slug path
- `feId` (string, optional, nullable)
- `field` (string, optional, nullable) — Rejected input field. With type validation-failed, nameBrand/nameLegal/nameAlias means entity-name or identity admission refused the requested record mutation before its write transaction. Other field and type combinations make no such promise.
- `filedRunId` (list of string, optional, nullable) — Research request ids a batch filed or reused for its other records before returning this error; absent for every other error.
- `hammingDistance` (long, optional, nullable)
- `hint` (string, optional, nullable)
- `instance` (string, optional)
- `limit` (long, optional, nullable) — Cap the limitType meter allows for its current period.
- `limitType` (string, optional, nullable) — Which meter refused the request; names what limit/used/remaining count.
- `matchedBlocklistKey` (string, optional, nullable)
- `mediaType` (string, optional, nullable)
- `moderationReason` (string, optional, nullable)
- `mutationNotApplied` (boolean, optional, nullable) — True only when the operation owner proves that none of the requested record mutations committed. Preparation may have stored source documents or temporary assets. Absent when the mutation outcome is unknown; disposition alone makes no such promise.
- `path` (string, optional, nullable)
- `properties` (map from string to any, optional)
- `proseViolation` (list of ProseViolation, optional, nullable) — Every rejected passage of a PROSE_REJECTED write, once per problem it shows; absent for every other problem.
- `remaining` (long, optional, nullable) — Cap minus used for the limitType meter, never negative.
- `requiredRole` (string, optional, nullable)
- `resetAt` (datetime, optional, nullable) — When the limitType meter refills and the request can succeed again.
- `resolution` (ProblemResolution, optional, nullable) — Machine-readable next action for an aVenture ProblemDetail. For reviewCandidates, inspect ProblemDetail.details candidates and decide update, create-with-override, or block from those returned records.
- `retryAfterSeconds` (long, optional, nullable) — Seconds to wait before the same request can succeed. A BILLING_ALLOWANCE meter resets at the UTC month boundary, so this reaches weeks: read limitType before treating it as a burst backoff.
- `spanId` (string, optional, nullable)
- `status` (integer, optional)
- `suggestion` (string, optional, nullable)
- `suggestions` (map from string to string, optional, nullable)
- `suspectedFragment` (string, optional, nullable)
- `title` (string, optional)
- `traceId` (string, optional, nullable)
- `type` (string, optional)
- `unknownParameters` (list of string, optional, nullable)
- `unmetGateId` (list of string, optional, nullable) — On a task-completion 409, the ids of the completion checks that did not pass; absent for every other problem.
- `used` (long, optional, nullable) — Requests already charged against the limitType meter this period.
- `validParameters` (list of string, optional, nullable)
- `value` (string, optional, nullable)
- `windowSeconds` (long, optional, nullable) — Length of a rolling throttle window; absent for period meters.

### 422 Unprocessable Entity Error

Unprocessable Content

- `allowanceType` (string, optional, nullable) — Which monthly allowance a BILLING_ALLOWANCE refusal exhausted.
- `campusProofRefusal` (string, optional, nullable) — For a school campus lookup (NCES records), the evidence from the campus's own website that is still missing; absent for other failures.
- `circuitBreaker` (string, optional, nullable)
- `code` (string, optional, nullable) — Machine-readable secondary code on ProblemDetail.code. Agents should branch on this value when the HTTP status alone does not identify the recovery path. Many codes describe server-side conditions a caller cannot fix: surface them and stop.
- `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Record that currently uses this slug
- `coveringRunId` (string, optional, nullable) — The caller's own queued or running research request that already covers the record on a harness-run-already-requested problem; absent when another requester or aVenture filed it, and for every other problem.
- `detail` (string, optional)
- `details` (DomainConflictDetails, optional, nullable) — Structured conflict details. A possible duplicate or an ambiguous lookup returns its candidate records; score and threshold rank the candidates and do not prove that the requested record is absent.
- `disposition` (enum, optional) — Whether this classified failure can be retried.
  - Allowed values: `TRANSIENT`, `TERMINAL`
- `error` (map from string to string, optional, nullable)
- `existingRecordId` (string, optional, nullable) — On a duplicate 409, the id of the stored record the request collided with; read or update that record instead of creating it again. Absent when the conflict names no single stored record.
- `existingRedirect` (RedirectSlugPath, optional, nullable) — Redirect slug path
- `feId` (string, optional, nullable)
- `field` (string, optional, nullable) — Rejected input field. With type validation-failed, nameBrand/nameLegal/nameAlias means entity-name or identity admission refused the requested record mutation before its write transaction. Other field and type combinations make no such promise.
- `filedRunId` (list of string, optional, nullable) — Research request ids a batch filed or reused for its other records before returning this error; absent for every other error.
- `hammingDistance` (long, optional, nullable)
- `hint` (string, optional, nullable)
- `instance` (string, optional)
- `limit` (long, optional, nullable) — Cap the limitType meter allows for its current period.
- `limitType` (string, optional, nullable) — Which meter refused the request; names what limit/used/remaining count.
- `matchedBlocklistKey` (string, optional, nullable)
- `mediaType` (string, optional, nullable)
- `moderationReason` (string, optional, nullable)
- `mutationNotApplied` (boolean, optional, nullable) — True only when the operation owner proves that none of the requested record mutations committed. Preparation may have stored source documents or temporary assets. Absent when the mutation outcome is unknown; disposition alone makes no such promise.
- `path` (string, optional, nullable)
- `properties` (map from string to any, optional)
- `proseViolation` (list of ProseViolation, optional, nullable) — Every rejected passage of a PROSE_REJECTED write, once per problem it shows; absent for every other problem.
- `remaining` (long, optional, nullable) — Cap minus used for the limitType meter, never negative.
- `requiredRole` (string, optional, nullable)
- `resetAt` (datetime, optional, nullable) — When the limitType meter refills and the request can succeed again.
- `resolution` (ProblemResolution, optional, nullable) — Machine-readable next action for an aVenture ProblemDetail. For reviewCandidates, inspect ProblemDetail.details candidates and decide update, create-with-override, or block from those returned records.
- `retryAfterSeconds` (long, optional, nullable) — Seconds to wait before the same request can succeed. A BILLING_ALLOWANCE meter resets at the UTC month boundary, so this reaches weeks: read limitType before treating it as a burst backoff.
- `spanId` (string, optional, nullable)
- `status` (integer, optional)
- `suggestion` (string, optional, nullable)
- `suggestions` (map from string to string, optional, nullable)
- `suspectedFragment` (string, optional, nullable)
- `title` (string, optional)
- `traceId` (string, optional, nullable)
- `type` (string, optional)
- `unknownParameters` (list of string, optional, nullable)
- `unmetGateId` (list of string, optional, nullable) — On a task-completion 409, the ids of the completion checks that did not pass; absent for every other problem.
- `used` (long, optional, nullable) — Requests already charged against the limitType meter this period.
- `validParameters` (list of string, optional, nullable)
- `value` (string, optional, nullable)
- `windowSeconds` (long, optional, nullable) — Length of a rolling throttle window; absent for period meters.

### 429 Too Many Requests Error

Too Many Requests

- `allowanceType` (string, optional, nullable) — Which monthly allowance a BILLING_ALLOWANCE refusal exhausted.
- `campusProofRefusal` (string, optional, nullable) — For a school campus lookup (NCES records), the evidence from the campus's own website that is still missing; absent for other failures.
- `circuitBreaker` (string, optional, nullable)
- `code` (string, optional, nullable) — Machine-readable secondary code on ProblemDetail.code. Agents should branch on this value when the HTTP status alone does not identify the recovery path. Many codes describe server-side conditions a caller cannot fix: surface them and stop.
- `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Record that currently uses this slug
- `coveringRunId` (string, optional, nullable) — The caller's own queued or running research request that already covers the record on a harness-run-already-requested problem; absent when another requester or aVenture filed it, and for every other problem.
- `detail` (string, optional)
- `details` (DomainConflictDetails, optional, nullable) — Structured conflict details. A possible duplicate or an ambiguous lookup returns its candidate records; score and threshold rank the candidates and do not prove that the requested record is absent.
- `disposition` (enum, optional) — Whether this classified failure can be retried.
  - Allowed values: `TRANSIENT`, `TERMINAL`
- `error` (map from string to string, optional, nullable)
- `existingRecordId` (string, optional, nullable) — On a duplicate 409, the id of the stored record the request collided with; read or update that record instead of creating it again. Absent when the conflict names no single stored record.
- `existingRedirect` (RedirectSlugPath, optional, nullable) — Redirect slug path
- `feId` (string, optional, nullable)
- `field` (string, optional, nullable) — Rejected input field. With type validation-failed, nameBrand/nameLegal/nameAlias means entity-name or identity admission refused the requested record mutation before its write transaction. Other field and type combinations make no such promise.
- `filedRunId` (list of string, optional, nullable) — Research request ids a batch filed or reused for its other records before returning this error; absent for every other error.
- `hammingDistance` (long, optional, nullable)
- `hint` (string, optional, nullable)
- `instance` (string, optional)
- `limit` (long, optional, nullable) — Cap the limitType meter allows for its current period.
- `limitType` (string, optional, nullable) — Which meter refused the request; names what limit/used/remaining count.
- `matchedBlocklistKey` (string, optional, nullable)
- `mediaType` (string, optional, nullable)
- `moderationReason` (string, optional, nullable)
- `mutationNotApplied` (boolean, optional, nullable) — True only when the operation owner proves that none of the requested record mutations committed. Preparation may have stored source documents or temporary assets. Absent when the mutation outcome is unknown; disposition alone makes no such promise.
- `path` (string, optional, nullable)
- `properties` (map from string to any, optional)
- `proseViolation` (list of ProseViolation, optional, nullable) — Every rejected passage of a PROSE_REJECTED write, once per problem it shows; absent for every other problem.
- `remaining` (long, optional, nullable) — Cap minus used for the limitType meter, never negative.
- `requiredRole` (string, optional, nullable)
- `resetAt` (datetime, optional, nullable) — When the limitType meter refills and the request can succeed again.
- `resolution` (ProblemResolution, optional, nullable) — Machine-readable next action for an aVenture ProblemDetail. For reviewCandidates, inspect ProblemDetail.details candidates and decide update, create-with-override, or block from those returned records.
- `retryAfterSeconds` (long, optional, nullable) — Seconds to wait before the same request can succeed. A BILLING_ALLOWANCE meter resets at the UTC month boundary, so this reaches weeks: read limitType before treating it as a burst backoff.
- `spanId` (string, optional, nullable)
- `status` (integer, optional)
- `suggestion` (string, optional, nullable)
- `suggestions` (map from string to string, optional, nullable)
- `suspectedFragment` (string, optional, nullable)
- `title` (string, optional)
- `traceId` (string, optional, nullable)
- `type` (string, optional)
- `unknownParameters` (list of string, optional, nullable)
- `unmetGateId` (list of string, optional, nullable) — On a task-completion 409, the ids of the completion checks that did not pass; absent for every other problem.
- `used` (long, optional, nullable) — Requests already charged against the limitType meter this period.
- `validParameters` (list of string, optional, nullable)
- `value` (string, optional, nullable)
- `windowSeconds` (long, optional, nullable) — Length of a rolling throttle window; absent for period meters.

### 500 Internal Server Error

Internal Server Error

- `allowanceType` (string, optional, nullable) — Which monthly allowance a BILLING_ALLOWANCE refusal exhausted.
- `campusProofRefusal` (string, optional, nullable) — For a school campus lookup (NCES records), the evidence from the campus's own website that is still missing; absent for other failures.
- `circuitBreaker` (string, optional, nullable)
- `code` (string, optional, nullable) — Machine-readable secondary code on ProblemDetail.code. Agents should branch on this value when the HTTP status alone does not identify the recovery path. Many codes describe server-side conditions a caller cannot fix: surface them and stop.
- `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Record that currently uses this slug
- `coveringRunId` (string, optional, nullable) — The caller's own queued or running research request that already covers the record on a harness-run-already-requested problem; absent when another requester or aVenture filed it, and for every other problem.
- `detail` (string, optional)
- `details` (DomainConflictDetails, optional, nullable) — Structured conflict details. A possible duplicate or an ambiguous lookup returns its candidate records; score and threshold rank the candidates and do not prove that the requested record is absent.
- `disposition` (enum, optional) — Whether this classified failure can be retried.
  - Allowed values: `TRANSIENT`, `TERMINAL`
- `error` (map from string to string, optional, nullable)
- `existingRecordId` (string, optional, nullable) — On a duplicate 409, the id of the stored record the request collided with; read or update that record instead of creating it again. Absent when the conflict names no single stored record.
- `existingRedirect` (RedirectSlugPath, optional, nullable) — Redirect slug path
- `feId` (string, optional, nullable)
- `field` (string, optional, nullable) — Rejected input field. With type validation-failed, nameBrand/nameLegal/nameAlias means entity-name or identity admission refused the requested record mutation before its write transaction. Other field and type combinations make no such promise.
- `filedRunId` (list of string, optional, nullable) — Research request ids a batch filed or reused for its other records before returning this error; absent for every other error.
- `hammingDistance` (long, optional, nullable)
- `hint` (string, optional, nullable)
- `instance` (string, optional)
- `limit` (long, optional, nullable) — Cap the limitType meter allows for its current period.
- `limitType` (string, optional, nullable) — Which meter refused the request; names what limit/used/remaining count.
- `matchedBlocklistKey` (string, optional, nullable)
- `mediaType` (string, optional, nullable)
- `moderationReason` (string, optional, nullable)
- `mutationNotApplied` (boolean, optional, nullable) — True only when the operation owner proves that none of the requested record mutations committed. Preparation may have stored source documents or temporary assets. Absent when the mutation outcome is unknown; disposition alone makes no such promise.
- `path` (string, optional, nullable)
- `properties` (map from string to any, optional)
- `proseViolation` (list of ProseViolation, optional, nullable) — Every rejected passage of a PROSE_REJECTED write, once per problem it shows; absent for every other problem.
- `remaining` (long, optional, nullable) — Cap minus used for the limitType meter, never negative.
- `requiredRole` (string, optional, nullable)
- `resetAt` (datetime, optional, nullable) — When the limitType meter refills and the request can succeed again.
- `resolution` (ProblemResolution, optional, nullable) — Machine-readable next action for an aVenture ProblemDetail. For reviewCandidates, inspect ProblemDetail.details candidates and decide update, create-with-override, or block from those returned records.
- `retryAfterSeconds` (long, optional, nullable) — Seconds to wait before the same request can succeed. A BILLING_ALLOWANCE meter resets at the UTC month boundary, so this reaches weeks: read limitType before treating it as a burst backoff.
- `spanId` (string, optional, nullable)
- `status` (integer, optional)
- `suggestion` (string, optional, nullable)
- `suggestions` (map from string to string, optional, nullable)
- `suspectedFragment` (string, optional, nullable)
- `title` (string, optional)
- `traceId` (string, optional, nullable)
- `type` (string, optional)
- `unknownParameters` (list of string, optional, nullable)
- `unmetGateId` (list of string, optional, nullable) — On a task-completion 409, the ids of the completion checks that did not pass; absent for every other problem.
- `used` (long, optional, nullable) — Requests already charged against the limitType meter this period.
- `validParameters` (list of string, optional, nullable)
- `value` (string, optional, nullable)
- `windowSeconds` (long, optional, nullable) — Length of a rolling throttle window; absent for period meters.

### 503 Service Unavailable Error

Service Unavailable

- `allowanceType` (string, optional, nullable) — Which monthly allowance a BILLING_ALLOWANCE refusal exhausted.
- `campusProofRefusal` (string, optional, nullable) — For a school campus lookup (NCES records), the evidence from the campus's own website that is still missing; absent for other failures.
- `circuitBreaker` (string, optional, nullable)
- `code` (string, optional, nullable) — Machine-readable secondary code on ProblemDetail.code. Agents should branch on this value when the HTTP status alone does not identify the recovery path. Many codes describe server-side conditions a caller cannot fix: surface them and stop.
- `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Record that currently uses this slug
- `coveringRunId` (string, optional, nullable) — The caller's own queued or running research request that already covers the record on a harness-run-already-requested problem; absent when another requester or aVenture filed it, and for every other problem.
- `detail` (string, optional)
- `details` (DomainConflictDetails, optional, nullable) — Structured conflict details. A possible duplicate or an ambiguous lookup returns its candidate records; score and threshold rank the candidates and do not prove that the requested record is absent.
- `disposition` (enum, optional) — Whether this classified failure can be retried.
  - Allowed values: `TRANSIENT`, `TERMINAL`
- `error` (map from string to string, optional, nullable)
- `existingRecordId` (string, optional, nullable) — On a duplicate 409, the id of the stored record the request collided with; read or update that record instead of creating it again. Absent when the conflict names no single stored record.
- `existingRedirect` (RedirectSlugPath, optional, nullable) — Redirect slug path
- `feId` (string, optional, nullable)
- `field` (string, optional, nullable) — Rejected input field. With type validation-failed, nameBrand/nameLegal/nameAlias means entity-name or identity admission refused the requested record mutation before its write transaction. Other field and type combinations make no such promise.
- `filedRunId` (list of string, optional, nullable) — Research request ids a batch filed or reused for its other records before returning this error; absent for every other error.
- `hammingDistance` (long, optional, nullable)
- `hint` (string, optional, nullable)
- `instance` (string, optional)
- `limit` (long, optional, nullable) — Cap the limitType meter allows for its current period.
- `limitType` (string, optional, nullable) — Which meter refused the request; names what limit/used/remaining count.
- `matchedBlocklistKey` (string, optional, nullable)
- `mediaType` (string, optional, nullable)
- `moderationReason` (string, optional, nullable)
- `mutationNotApplied` (boolean, optional, nullable) — True only when the operation owner proves that none of the requested record mutations committed. Preparation may have stored source documents or temporary assets. Absent when the mutation outcome is unknown; disposition alone makes no such promise.
- `path` (string, optional, nullable)
- `properties` (map from string to any, optional)
- `proseViolation` (list of ProseViolation, optional, nullable) — Every rejected passage of a PROSE_REJECTED write, once per problem it shows; absent for every other problem.
- `remaining` (long, optional, nullable) — Cap minus used for the limitType meter, never negative.
- `requiredRole` (string, optional, nullable)
- `resetAt` (datetime, optional, nullable) — When the limitType meter refills and the request can succeed again.
- `resolution` (ProblemResolution, optional, nullable) — Machine-readable next action for an aVenture ProblemDetail. For reviewCandidates, inspect ProblemDetail.details candidates and decide update, create-with-override, or block from those returned records.
- `retryAfterSeconds` (long, optional, nullable) — Seconds to wait before the same request can succeed. A BILLING_ALLOWANCE meter resets at the UTC month boundary, so this reaches weeks: read limitType before treating it as a burst backoff.
- `spanId` (string, optional, nullable)
- `status` (integer, optional)
- `suggestion` (string, optional, nullable)
- `suggestions` (map from string to string, optional, nullable)
- `suspectedFragment` (string, optional, nullable)
- `title` (string, optional)
- `traceId` (string, optional, nullable)
- `type` (string, optional)
- `unknownParameters` (list of string, optional, nullable)
- `unmetGateId` (list of string, optional, nullable) — On a task-completion 409, the ids of the completion checks that did not pass; absent for every other problem.
- `used` (long, optional, nullable) — Requests already charged against the limitType meter this period.
- `validParameters` (list of string, optional, nullable)
- `value` (string, optional, nullable)
- `windowSeconds` (long, optional, nullable) — Length of a rolling throttle window; absent for period meters.

## Types

### EntityPersonAssociationFilter

Constraints on one independent entity-person association.

- `entityFilter` (EntityFilter, optional, nullable) — Constraints on the associated entity, including its exact names.
- `isCurrent` (boolean, optional, nullable) — Filter this association by whether it is current.
- `personTitle` (list of string, optional) — Titles on this association.

### PersonListArrayFilter

Array and range filters for person list endpoints

- `amountInvestedRange` (list of DecimalRange, optional, nullable)
- `amountRaisedRange` (list of DecimalRange, optional, nullable)
- `entityName` (list of string, optional, nullable) — Associated entity names.
- `investedCompany` (list of string, optional, nullable) — Invested company names.
- `personTitle` (list of string, optional, nullable) — Person titles.
- `round` (list of string, optional, nullable) — Fundraise round labels.
- `totalInvestmentCount` (list of IntRange, optional, nullable)
- `typeRecord` (list of enum, optional, nullable) — Associated types; Organization uses EntityFilter expansion.
  - Allowed values: `Company`, `Investment Firm`, `Fund`, `Nonprofit`, `Government`, `Organization`, `Business Line`, `Product`, `Service`

### EntityFilter

Entity list and search filters. GET flattens these fields as query parameters; POST accepts the same shape as JSON.

- `acceleratorBrand` (list of string, optional) — Accelerator brand or operator name.
- `acceleratorCohort` (list of string, optional) — Accelerator batch or cohort label.
- `acceleratorName` (list of string, optional) — Specific accelerator program name.
- `acceleratorStatus` (list of string, optional) — Accelerator participation status.
- `affinity` (list of string, optional) — Affinity provider organization names accepted by the companies list filter. Affinity rows are member -> provider; use provider names here, not member names.
- `closedLast` (boolean, optional) — Rank terminal entities (Acquired, Closed, Closed (Acquihire), Inactive) after every other textSearch or semanticQuery match, ahead of relevance and sort, except that an exact textSearch name, slug, legal-name, or alias match of any status ranks ahead of every weaker match; omitted means true. false ranks them by relevance alone. Filter them out with operatingStatus or suppressNonOperating.
- `employeeCountRange` (list of EmployeeCountRange, optional) — Current workforce ranges; omitted matchMode is numeric-only.
- `entityId` (list of string, optional) — Restrict results to entity IDs.
- `entityName` (list of string, optional) — Exact normalized match against entity brand, legal, or alias names.
- `featured` (boolean, optional, nullable) — Filter by featured status.
- `fundraiseActivity` (EntityFundraiseFilterCriteria, optional) — Fundraise activity
- `hasFundraising` (boolean, optional, nullable) — Filter to entities with fundraise activity.
- `headquartersCity` (list of string, optional) — Headquarters city values.
- `headquartersCountry` (list of string, optional) — Headquarters country values.
- `headquartersState` (list of string, optional) — Headquarters state or region values.
- `industry` (list of string, optional) — Industry classification values.
- `investorPopulation` (boolean, optional, nullable) — Opt in to Firms/Funds, a current source-stated investing mandate, or recorded non-grant direct/current-primary-managed investment participation. Omitted/false keeps legacy scope; explicit typeRecord intersects. Prose, legal form and missing funding establish nothing.
- `letter` (string, optional, nullable) — First letter of the display name.
- `location` (list of string, optional) — Markets served, not HQ or offices.
- `logoOption` (EntityFilterLogoOption, optional) — Logo sort priority.
- `mainProduct` (list of string, optional) — Main product classification values.
- `noteworthyOnly` (boolean, optional) — When true, only operating companies or business lines with a real logo, founding year, and current headquarters that had notable activity in the last 48 hours.
- `operatingStatus` (list of enum, optional) — Operating states; omit for all.
  - Allowed values: `Operating`, `Acquired`, `Acquired Subsidiary`, `Closed`, `Closed (Acquihire)`, `Inactive`
- `originCountry` (list of string, optional) — Countries an entity is from: its headquarters country or the country of its current origin (founding) address, never a legal seat alone. What a nationality adjective (Colombian startups) means; headquartersCountry is only where it is based now.
- `person` (list of string, optional) — Associated person, matched by name.
- `portfolioHeadquartersCity` (list of string, optional) — Portfolio-company headquarters city values.
- `portfolioHeadquartersCountry` (list of string, optional) — Portfolio-company headquarters country values.
- `portfolioHeadquartersState` (list of string, optional) — Portfolio-company headquarters state or region values.
- `qualityGate` (enum, optional) — Extra listing check: COMPANY_LISTING_READY or NONE (default, no check).
  - Allowed values: `NONE`, `COMPANY_LISTING_READY`
- `rankByProminence` (boolean, optional, nullable) — Rank most prominent first (funding, stage, headcount, momentum, recent news, investor breadth), ahead of sort: what best, top, or most promising mean.
- `slug` (list of string, optional) — Restrict results to entity slugs.
- `stage` (list of string, optional) — Stage classification values.
- `standardizedClassification` (list of StandardizedClassificationFilter, optional) — Matches any one of these entries; combined with the other filters by AND.
- `suppressLateStage` (boolean, optional, nullable) — Exclude public and acquired companies (including acquired subsidiaries); what startup means. Private companies at any round stay, as do companies without a recorded stage or operating status.
- `suppressNonOperating` (boolean, optional, nullable) — Suppress entities with terminal operating status.
- `suppressZeroTotalRaised` (boolean, optional, nullable) — Suppress entities with zero or unknown USD total raised.
- `tag` (list of string, optional) — General classification tag values.
- `textSearch` (string, optional, nullable) — Non-blank company-identity search term: it matches only brand names, legal names, slugs, and name aliases (including near spellings of them), never descriptions, products, or topics. A topic, sector, or market word such as "climate" or "corporate card" returns no rows or name lookalikes here: filter by the industry, tag, mainProduct, or other classification fields, send the phrase as semanticQuery on POST /v1/entities/search, or ask natural search for plain-English or multi-constraint company requests.
- `typeCustomer` (list of string, optional) — Customer-type classification values.
- `typeModel` (list of string, optional) — Business-model values.
- `typeOwnership` (list of string, optional) — Ownership-model values.
- `typeRecord` (list of enum, optional) — Entity type filter. Organization expands to Company, Investment Firm, Nonprofit, Government, and Business Line; omit to include every entity type.
  - Allowed values: `Company`, `Investment Firm`, `Fund`, `Nonprofit`, `Government`, `Organization`, `Business Line`, `Product`, `Service`
- `typeRevenue` (list of string, optional) — Revenue-model classification values.
- `typeTechnologyUsed` (list of string, optional) — Technology-used values.
- `uniqueId` (list of EntityUniqueIdFilter, optional) — Matches any listed registry identifier; combined with other filters by AND.
- `url` (string, optional, nullable) — Current URL to match by normalized host and path.
- `urlDomain` (string, optional, nullable) — Current root domain to match when urlMatchMode=domain.
- `urlMatchMode` (enum, optional, nullable) — URL matching mode: hostPath uses host and path; domain uses the root domain. Omitted, it is domain when urlDomain is set, else hostPath.
  - Allowed values: `hostPath`, `domain`
- `urlType` (string, optional, nullable) — Restrict URL matching to one URL type.
- `yearFoundedRange` (list of IntRange, optional) — Inclusive founding-year ranges.

### InvestorActivityFilter

Aggregate investor activity filters from distinct fundraise deals and USD amounts.

- `averageAmountInvestedUsdRange` (list of DecimalRange, optional) — Average USD amount-invested ranges with inclusive bounds.
- `largestAmountInvestedUsdRange` (list of DecimalRange, optional) — Largest USD amount-invested ranges with inclusive bounds.
- `smallestAmountInvestedUsdRange` (list of DecimalRange, optional) — Smallest USD amount-invested ranges with inclusive bounds.
- `totalAmountInvestedUsdRange` (list of DecimalRange, optional) — Total USD amount-invested ranges with inclusive bounds.
- `totalInvestmentRange` (list of IntRange, optional) — Distinct fundraise-deal count ranges for an investor, with inclusive integer bounds.

### Person

A person's core profile fields.

- `id` (string, required) — Person id (UUID)
- `image` (PersonImage, required) — A person's image fields, as returned in detail and list responses.
- `nameAlias` (list of EntityNameAliasPersonAliasType, required) — Display and search aliases for this person
- `nameDisplay` (string, required) — Name to display: nameFull with the nickname in parentheses after the given name (`William (Bill) Alan Callahan`). Equals nameFull when the person has no nickname or nameFull already shows it; match and search on nameFull, never on this.
- `nameFull` (string, required)
- `slug` (string, required) — Lowercase URL slug that identifies the record.
- `text` (EntityTextBundle, required) — Always empty: people carry no biography text.
- `createdAt` (datetime, optional, nullable) — Record creation timestamp
- `gender` (string, optional, nullable)
- `lastModifiedAt` (datetime, optional, nullable) — Provenance-grounded last-modified watermark (schema.org dateModified): the latest effective time across all writes attributed to this person.
- `nameFirst` (string, optional, nullable)
- `nameLast` (string, optional, nullable)
- `nameMiddle` (string, optional, nullable) — Middle name as stored after name normalization
- `nickname` (string, optional, nullable)
- `publicId` (string, optional, nullable) — Stable, immutable public handle (e.g. `pV1StGXR8Z5ab`). Never changes once assigned, unlike the slug. Null on responses that do not include it and on older records not yet given a handle.
- `semanticMatch` (ContentEmbeddingMatch, optional, nullable) — Why this person matched a meaning-based (semantic) search; set only on semantic searches.
- `suffix` (string, optional, nullable)
- `updatedAt` (datetime, optional, nullable) — Last modification timestamp
- `urlLink` (list of EntityUrlLink, optional, nullable) — Current URLs on keyword list/search pages with includeUrl; else absent.

### PageableObject

- `offset` (long, optional)
- `pageNumber` (integer, optional)
- `pageSize` (integer, optional)
- `paged` (boolean, optional)
- `sort` (SortObject, optional)
- `unpaged` (boolean, optional)

### SortObject

- `empty` (boolean, optional)
- `sorted` (boolean, optional)
- `unsorted` (boolean, optional)

### CurrentSlugOwner

Record that currently uses this slug

- `id` (string, required)
- `isHidden` (boolean, required)
- `resourceType` (enum, required) — Resource type whose slug is being changed
  - Allowed values: `entity`, `person`, `news`, `blog`, `content`
- `showOnSitemap` (boolean, required)
- `slug` (string, required)
- `deletedAt` (datetime, optional, nullable)
- `nameBrand` (string, optional, nullable)

### DomainConflictDetails

Details of an HTTP 409 conflict. conflictType names the shape: URL_DUPLICATE when the URL is already a current URL on another record; STRICT_URL_LOOKUP when an exact URL lookup matches more than one record; DUPLICATE_CREATE_REVIEW when a create or lookup returns candidate records to review; CLASSIFICATION_INACTIVE_TAG when a classification value exists but is inactive; NEWS_SOURCE_URL when another article already has the same publication and URL.

- `conflictType`: `CLASSIFICATION_INACTIVE_TAG` (CLASSIFICATION_INACTIVE_TAG)
  - `availableOverrides` (list of enum, required) — Allowed inactiveTagOverride values for this conflict
    - Allowed values: `REACTIVATE`, `ATTACH_INACTIVE`
  - `slug` (string, required) — Existing dormant value slug or lookup key
  - `tagId` (integer, required) — Existing tag id
- `conflictType`: `DUPLICATE_CREATE_REVIEW` (DUPLICATE_CREATE_REVIEW)
  - `threshold` (integer, required) — Review threshold used by duplicate scoring. Scores below this value can still be useful candidate context; this value does not prove absence or authorize create.
  - `candidate` (list of SearchDuplicateCandidateScore, optional, nullable) — Entity/person candidates returned by lookup or create duplicate review. If a candidate is the requested record, read/update that candidate by id. Create with duplicate override only after every candidate is reviewed as distinct.
  - `newsCandidate` (list of NewsCandidateScore, optional, nullable) — News candidates returned by lookup or create duplicate review. If a candidate is the requested article, read/update that article by id. Otherwise block until source evidence proves a distinct article.
  - `overridePath` (string, optional, nullable) — Create endpoint to retry only after reviewing the returned candidates and supplying overrideGate=duplicate and overrideReason as query parameters. Null for detail lookup ambiguity, where the next action is review/update/block.
- `conflictType`: `NEWS_SOURCE_URL` (NEWS_SOURCE_URL)
  - `conflictingArticleId` (integer, required) — Id of the existing article that already has this publication and URL.
  - `conflictingArticleSlug` (string, required) — Existing article slug, or empty string when the existing article has no slug. Use with GET /v1/news/lookup?slug= to fetch the conflicting article.
  - `conflictingArticleTitle` (string, required) — Existing article title for human-readable diagnostics.
- `conflictType`: `STRICT_URL_LOOKUP` (STRICT_URL_LOOKUP)
  - `candidateEntityId` (list of string, required) — Every entity id that currently owns the normalized URL. May be empty when the conflict is between persons; combined with candidatePersonId always > 1.
  - `candidatePersonId` (list of string, required) — Every person id that currently owns the normalized URL. May be empty when the conflict is between entities; combined with candidateEntityId always > 1.
  - `hint` (string, required) — Human-readable hint describing which disambiguating query parameters to add.
  - `url` (string, required) — Raw URL the caller queried.
  - `normalizedUrl` (string, optional, nullable) — Normalized URL match key the lookup resolved against. Null when normalization could not produce a stable key.
  - `urlType` (string, optional, nullable) — URL type the caller specified, or null if the lookup did not constrain by urlType.
- `conflictType`: `URL_DUPLICATE` (URL_DUPLICATE)
  - `existingJoin` (list of UrlDuplicateJoin, required) — Every entity or person that already has this URL (after normalization) with this urlType. Non-empty when this conflict is emitted.
  - `fragmentIgnored` (boolean, required) — True when URL fragment differences were ignored during duplicate matching (i.e., the conflict ignores everything after '#').
  - `guidance` (string, required) — Human-readable guidance on how to resolve the conflict. Defaults to the standard identity and URL ownership checks.
  - `requestedOwner` (EntityPersonOwner, required) — Entity or person you tried to add the URL to.
  - `url` (string, required) — Raw URL as submitted by the caller (pre-normalization).
  - `urlType` (string, required) — URL type submitted by the caller (e.g., 'website', 'twitter'). The conflict applies only within this urlType.
  - `normalizedUrl` (string, optional, nullable) — Normalized URL match key used for duplicate detection. Null when normalization could not produce a stable key (e.g., malformed input).

### RedirectSlugPath

Redirect slug path

- `oldUrl` (string, required)
- `newUrl` (string, optional, nullable)
- `targetCurrentSlug` (string, optional, nullable)
- `targetId` (string, optional, nullable)
- `targetResourceType` (enum, optional, nullable) — Resource type whose slug is being changed
  - Allowed values: `entity`, `person`, `news`, `blog`, `content`

### ProseViolation

One rejected passage and one problem it shows; a passage with several problems appears once per problem.

- `overridable` (boolean, required) — Whether proseOverrideReason can accept this problem; ProblemDetail.hint says when an override is allowed.
- `passage` (string, required) — The rejected sentence or paragraph, the whole text for a global text-contract violation, or the source URL for a legal-page source.
- `problem` (string, required) — The problem this passage shows.
- `reason` (string, required) — Why the passage was rejected and how to fix it.
- `supportedWording` (string, optional, nullable) — Present only on a writerBrief grounding refusal with unsupportedSpan: the passage without those clauses, which its cited quotes support. Absent when that remaining wording is still refused.
- `unsupportedSpan` (list of string, optional, nullable) — Present only on a writerBrief grounding refusal of a statement with several clauses: the clauses its cited quotes do not support. Absent when every clause or none is refused.

### ProblemResolution

Machine-readable next action for an aVenture ProblemDetail. For reviewCandidates, inspect ProblemDetail.details candidates and decide update, create-with-override, or block from those returned records.

- `action` (enum, required) — Next action category for the client or agent.
  - Allowed values: `setField`, `setParameter`, `removeParameter`, `useEndpoint`, `reviewCandidates`, `authenticate`
- `acceptedValue` (list of string, optional, nullable) — Accepted values for the field or parameter, when enumerable.
- `endpoint` (string, optional, nullable) — Endpoint to call for the next action, when applicable.
- `fieldPath` (string, optional, nullable) — Request-body field path that needs attention, when applicable.
- `parameter` (string, optional, nullable) — Query or path parameter that needs attention, when applicable.
- `retryable` (boolean, optional, nullable) — Whether the same logical request can be retried after the next action.

### DecimalRange

Decimal range for monetary and numeric filter criteria

- `max` (double, optional, nullable) — Inclusive maximum decimal number, such as 220000 or 123456.78.
- `min` (double, optional, nullable) — Inclusive minimum decimal number, such as 220000 or 123456.78.

### IntRange

Integer range for count-based filter criteria

- `max` (integer, optional, nullable) — Inclusive maximum integer.
- `min` (integer, optional, nullable) — Inclusive minimum integer.

### EmployeeCountRange

Inclusive range applied to one current workforce observation.

- `matchMode` (string, optional, nullable) — Omitted or numeric matches only reported numbers, including exact-count estimates. overlap matches any intersection with a reported band; containment requires its whole interval within these bounds. Open upper bands cannot fit a finite maximum. Without either bound this entry is a no-op in every mode.
- `max` (integer, optional, nullable) — Inclusive maximum employees.
- `min` (integer, optional, nullable) — Inclusive minimum employees.

### EntityFundraiseFilterCriteria

Fundraise and investment filters for entity search

- `amountInvestedRange` (list of DecimalRange, optional) — Investor-level check amounts in the transaction currency, not the round's total raise. Use investedAmountRaisedRange for a named portfolio company's round total. Use plain JSON numbers.
- `amountRaisedRange` (list of DecimalRange, optional) — Per-round amounts raised by the returned entity itself in USD, not a portfolio company's round total. Use investedAmountRaisedRange for the latter. Use plain JSON numbers.
- `dateAnnouncedRange` (DateRange, optional, nullable) — Inclusive announcement timestamp bounds on the same fundraise transaction as round and amountRaisedRange. Announcement dates do not establish funding completion dates.
- `dateFundingCompleteRange` (DateRange, optional, nullable) — Inclusive funding completion timestamp bounds on the same fundraise transaction as round, amountRaisedRange, and investor constraints. Calendar-only completion dates must fit entirely within the bounds.
- `investedAmountRaisedRange` (list of DecimalRange, optional) — Total amounts raised in USD by a named portfolio company's rounds, not an investor's individual check or its own fundraising. Requires nonblank investedCompanyName. Company, investedRound, and this amount match the same portfolio-company transaction.
- `investedCompanyName` (list of string, optional) — Portfolio company brand, legal or canonical names, or a bare domain exactly matching a current WEBSITE root URL (not broad host discovery; no URL paths or queries). A bare-domain miss never falls back to a name. Returns their investors with investedRound, when supplied, bound to the same company transaction regardless of its age.
- `investedCountry` (list of string, optional) — Countries of the companies an investor backed, as country names or ids; a deal matches when its company's current headquarters is in one of them. Restricts returned entities to investors with such a deal inside the investment-activity horizon; the same deal must match investedIndustry and, when investedCompanyName is empty, investedRound.
- `investedIndustry` (list of string, optional) — Industry terms for the companies an investor backed, such as Software, Artificial Intelligence, or Fintech; a term matches a portfolio company whose industry or industry classification name contains it as whole words, case-insensitively. Restricts returned entities to investors with such a deal inside the investment-activity horizon; with investedRound and no investedCompanyName, the same deal must match both.
- `investedRound` (list of string, optional) — Round labels of deals an investor joined, such as Seed or Series A; with investedCompanyName matches those companies' transactions regardless of age, otherwise matches deals inside the investment-activity horizon.
- `investorActivity` (InvestorActivityFilter, optional) — Aggregate investor activity filters.
- `investorEntityId` (list of string, optional) — Investor entity ids. Restricts returned entities to the portfolio the investor's own investments list shows: fundraises it joined directly or through a fund it currently manages as primary manager.
- `investorName` (list of string, optional) — Deprecated for organizations: select a firm or fund by investorEntityId. It stays the only selector for an individual (angel) investor, matched by exact full name, until an investor person id filter replaces it. Investor names. Each resolves to at most one investor entity, whose portfolio investorEntityId would select: a live Investment Firm or Fund whose brand or alias equals it ignoring case and punctuation, else the entity with the most recorded investments whose brand, legal name, or alias equals it, else the public entity whose brand the name begins as whole words ("Sequoia") holding many times the recorded investments of every other such entity (Sequoia Capital). A name also matches an individual investor's exact full name.
- `investorNameMatch` (enum, optional, nullable) — How investorEntityId ids and investorName names combine: any (default) returns companies one named investor backed; every returns companies every named investor backed, each in any of the company's fundraises.
  - Allowed values: `any`, `every`
- `lastRoundYearRange` (list of IntRange, optional) — Last-round-year ranges for each entity's most recent fundraise round.
- `rankByInvestmentActivity` (boolean, optional, nullable) — True ranks returned investors by recent deal activity ahead of any sort: each deal matching investedIndustry, investedCountry, and (when investedCompanyName is empty) investedRound adds a weight that decays to zero over the investment-activity horizon, nudged by the investor's known USD check. Restricts returned entities to investors with such a deal.
- `round` (list of string, optional) — Fundraise round labels, such as Seed or Series A.
- `totalRaisedRange` (list of DecimalRange, optional) — Total-raised ranges across all rounds in USD. Use plain JSON numbers.
- `valuationRange` (list of DecimalRange, optional) — Post-money valuation ranges in USD.

### EntityFilterLogoOption

Logo sort priority for entity search

- `sortPriority` (enum, optional) — Logo sort priority.
  - Allowed values: `NONE`, `ANY_LOGO_FIRST`, `REAL_LOGO_FIRST`

### StandardizedClassificationFilter

Exact standardized reference tuple. All supplied fields match one reference; no edition filter means any edition, hasEdition=false selects unknown edition.

- `category` (string, required) — Existing standardized category; no inferred namespace.
- `code` (integer, optional, nullable) — Exact legacy numeric code; may match multiple editions unless edition is constrained.
- `codeText` (string, optional, nullable) — Exact source-stated code text, never reconstructed from numeric code.
- `edition` (string, optional, nullable) — Exact supplied codebook edition; omitted does not assume the current edition.
- `hasEdition` (boolean, optional, nullable) — true selects recorded editions; false selects unknown edition; omit it to match either.

### EntityUniqueIdFilter

Public-registry identifier predicate: entities holding an identifier in this namespace, or this exact identifier when identifier is supplied. Private namespaces are refused.

- `idType` (string, required) — Public identifier type token, for example secCik, ein, or ticker.
- `identifier` (string, optional, nullable) — Exact identifier in that namespace; omitted matches any recorded value.

### PersonImage

A person's image fields, as returned in detail and list responses.

- `isMonogram` (boolean, required) — Whether person image monogram
- `picture` (string, optional, nullable)
- `pictureVariant` (list of ImageVariant, optional, nullable) — Verified variants of picture's exact final master path; null means unknown, an empty array means known-empty. Use the master when absent or empty.

### EntityNameAliasPersonAliasType

Alternate name used for search and display

- `name` (string, required) — Alternate name text
- `displayable` (boolean, optional, nullable) — Show this alias in public name displays.
- `type` (enum, optional, nullable) — Alias type classification
  - Allowed values: `maidenName`, `formerName`, `stageName`

### EntityTextBundle

Grouped entity/person text content

- `expanded` (string, optional, nullable) — Expanded summary text
- `generatedDescription` (string, optional, nullable) — Generated SEO meta description text
- `short` (string, optional, nullable) — Short summary text

### ContentEmbeddingMatch

Why content matched a meaning-based (semantic) search.

- `computedAt` (datetime, required) — Timestamp when the embedding row was computed.
- `cosineDistance` (double, required) — pgvector cosine distance where lower is closer.
- `cosineScore` (double, required) — Cosine similarity score where higher is closer.
- `modelVersion` (string, required) — Embedding model/profile version for this row.
- `rank` (integer, required) — Rank by meaning similarity among the nearest-neighbor candidates returned, starting at 1.
- `sourceHash` (string, required) — SHA-256 hash of the source content.
- `sourceId` (string, required) — Content embedding source identifier.
- `sourceType` (string, required) — Kind of content that matched.

### EntityUrlLink

A URL linked to an entity or person, with its status, crawl results, and source. Lifecycle state (current vs former, primary vs secondary) is encoded by `isCurrent` and `isPrimary` — `urlType` names only the platform (website, linkedin, and so on), and its write values come from GET /v1/url-types. Readers accept new platform types as deployments evolve. To record a rebrand or domain migration, retain the prior URL with the same `urlType` (typically `website`) and set `isCurrent=false, isPrimary=false`; never encode lifecycle in the platform type.

- `url` (string, required) — Absolute URL as stored, with the host normalized to the form the live site uses.
- `urlType` (string, required) — Canonical URL platform type such as website, linkedin, twitter, or github. Lifecycle facts belong on link flags such as isCurrent and isPrimary.
- `crawlCdnProvider` (enum, optional, nullable) — CDN provider from the latest URL probe.
  - Allowed values: `cloudflare`, `akamai`, `fastly`, `awsCloudfront`, `vercel`, `netlify`, `sucuri`, `incapsula`, `bunny`, `keycdn`, `cdn77`, `gcore`, `cdnetworks`, `azureCdn`, `leaseweb`, `digitalocean`, `stackpath`, `googlecloudCdn`, `none`, `unknown`
- `crawlRenderMode` (enum, optional, nullable) — Render mode from the latest URL probe.
  - Allowed values: `static`, `jsRequired`, `jsEnhanced`
- `createdAt` (datetime, optional, nullable)
- `id` (integer, optional, nullable)
- `isCurrent` (boolean, optional, nullable) — `true` = owner currently uses this URL; `false` = historical/former (rebrand source domain, deprecated platform handle). The lifecycle state lives here, NEVER in the `urlType` discriminator.
- `isPrimary` (boolean, optional, nullable) — `true` = canonical/primary URL of this `urlType` for this owner. Only one row per (owner, urlType) may be `isCurrent=true` AND `isPrimary=true`. Retired rows are always non-primary, including when a write requests otherwise.
- `owner` (EntityPersonOwner, optional, nullable) — Owning record, nested ids only: owner.entityId or owner.personId — exactly one is set, and no name fields. Writes are scoped by the owning entity/person route; owner is never a write field.
- `sourceId` (string, optional, nullable)
- `status` (string, optional, nullable) — Latest URL status observation; a later probe may replace the submitted status.
- `statusChecked` (datetime, optional, nullable) — Time of the latest URL status observation.
- `updatedAt` (datetime, optional, nullable)

### SearchDuplicateCandidateScore

Duplicate candidate scoring result. Use id/name/slug/typeRecord/reason to decide whether the candidate is the requested record. score ranks review priority; it does not prove absence.

- `id` (string, required) — Candidate id to read or update when this candidate is the requested record.
- `reason` (list of string, required) — Match reasons such as name-exact, slug-exact, url-match, url-current, url-type, or precomputed-similarity. url-match proves the supplied URL/domain matched; url-current additionally proves the candidate still holds that address today, so a candidate with url-match but no url-current matched only through a URL it no longer uses, such as an acquisition redirect. url-type only means the candidate has the same URL category and is review context, not URL identity evidence.
- `externalId` (string, optional, nullable) — Matched external identifier when duplicate scoring used one.
- `name` (string, optional, nullable) — Candidate display name from the existing record.
- `operatingStatus` (string, optional, nullable) — Current operating status for entity candidates.
- `publicPath` (string, optional, nullable) — Public API/UI path for the candidate when available.
- `score` (integer, optional) — Ranking score for duplicate review. It is not an absence proof; a low score can still be the intended record when reason/name/slug/typeRecord match.
- `slug` (string, optional, nullable) — Candidate slug from the existing record.
- `typeRecord` (enum, optional, nullable) — Candidate entity type from the existing record.
  - Allowed values: `Company`, `Investment Firm`, `Fund`, `Nonprofit`, `Government`, `Organization`, `Business Line`, `Product`, `Service`

### NewsCandidateScore

Duplicate candidate scoring result for news articles. Use id/slug/externalId/reason to decide whether the candidate is the requested article. score ranks review priority; it does not prove absence.

- `id` (integer, required) — News article id to read or update when this candidate is the requested article.
- `publicationScore` (integer, required) — Portion of score contributed by the publication match alone; 0 when the publication did not match. A candidate whose score minus publicationScore falls below the review threshold matched only on its outlet, not its story.
- `reason` (list of string, required) — Match reasons for reviewing the candidate. Exact reasons are decision signals regardless of whether score crosses the review threshold.
- `score` (integer, required) — Ranking score for duplicate review. It is not an absence proof; a low score can still be the intended article when reason/slug/externalId match.
- `externalId` (string, optional, nullable) — Matched external article identifier when duplicate scoring used one.
- `slug` (string, optional, nullable) — Candidate article slug from the existing record.

### UrlDuplicateJoin

Entity or person that currently has this URL (after normalization).

- `owner` (EntityPersonOwner, required) — Owner of the URL: either entityId or personId is populated depending on the owner kind. Use the populated id to read or update the owner's URL.
- `urlId` (integer, required) — Identifier of the existing URL record that already holds this address.

### EntityPersonOwner

Exactly one of entityId or personId is set; ids only, no name fields. Resolve display names with GET /v1/entities/detail or GET /v1/people/\{personId}.

- `entityId` (string, optional, nullable) — Owning entity id; set only when personId is absent.
- `personId` (string, optional, nullable) — Owning person id; set only when entityId is absent.

### DateRange

ISO-8601 timestamp range for temporal filters.

- `max` (datetime, optional, nullable) — Inclusive latest timestamp.
- `min` (datetime, optional, nullable) — Inclusive earliest timestamp.

### ImageVariant

A stored image variant with verified dimensions and content type

- `contentType` (string, required) — Content type verified from the stored image bytes
- `height` (integer, required) — Actual pixel height
- `path` (string, required) — Managed path of the actual stored variant
- `width` (integer, required) — Actual pixel width

## Examples

**Request**

```json
{}
```

**Response**

```json
{
  "content": [
    {
      "id": "string",
      "image": {
        "isMonogram": true,
        "picture": "string",
        "pictureVariant": [
          {
            "contentType": "string",
            "height": 1,
            "path": "string",
            "width": 1
          }
        ]
      },
      "nameAlias": [
        {
          "name": "Bun",
          "displayable": true,
          "type": "maidenName"
        }
      ],
      "nameDisplay": "string",
      "nameFull": "string",
      "slug": "aventure-vc",
      "text": {
        "expanded": "Canonical expanded summary for grouped text assertions.",
        "generatedDescription": "Acme AI builds AI copilots for growth teams.",
        "short": "Canonical short summary"
      },
      "createdAt": "2024-01-15T09:30:00Z",
      "gender": "string",
      "lastModifiedAt": "2024-01-15T09:30:00Z",
      "nameFirst": "string",
      "nameLast": "string",
      "nameMiddle": "string",
      "nickname": "string",
      "publicId": "pV1StGXR8Z5ab",
      "semanticMatch": {
        "computedAt": "2024-01-15T09:30:00Z",
        "cosineDistance": 1.1,
        "cosineScore": 1.1,
        "modelVersion": "string",
        "rank": 1,
        "sourceHash": "string",
        "sourceId": "string",
        "sourceType": "string"
      },
      "suffix": "string",
      "updatedAt": "2024-01-15T09:30:00Z",
      "urlLink": [
        {
          "url": "https://example.com",
          "urlType": "string",
          "crawlCdnProvider": "cloudflare",
          "crawlRenderMode": "static",
          "createdAt": "2024-01-15T09:30:00Z",
          "id": 1,
          "isCurrent": true,
          "isPrimary": true,
          "owner": {
            "entityId": "string",
            "personId": "string"
          },
          "sourceId": "string",
          "status": "string",
          "statusChecked": "2024-01-15T09:30:00Z",
          "updatedAt": "2024-01-15T09:30:00Z"
        }
      ]
    }
  ],
  "empty": true,
  "first": true,
  "last": true,
  "number": 1,
  "numberOfElements": 1,
  "pageable": {
    "offset": 1,
    "pageNumber": 1,
    "pageSize": 1,
    "paged": true,
    "sort": {
      "empty": true,
      "sorted": true,
      "unsorted": true
    },
    "unpaged": true
  },
  "size": 1,
  "sort": {
    "empty": true,
    "sorted": true,
    "unsorted": true
  },
  "totalElements": 1,
  "totalPages": 1
}
```

**SDK Code**

```python
import requests

url = "https://api.aventure.vc/v1/people/search"

payload = {}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://api.aventure.vc/v1/people/search';
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.aventure.vc/v1/people/search"

	payload := strings.NewReader("{}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.aventure.vc/v1/people/search")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{}"

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.aventure.vc/v1/people/search")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{}")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.aventure.vc/v1/people/search', [
  'body' => '{}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.aventure.vc/v1/people/search");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.aventure.vc/v1/people/search")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```