> 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.

# Deprecated: Identify Every Company and Person a Page, Screenshot, or PDF Names

POST https://api.aventure.vc/v1/lookup-mentions
Content-Type: application/json

Deprecated: send the same request to lookupMentions (POST /v1/lookup/mentions), adding scheduleEnrichment=true to keep queueing research on the records it adds. Reads a page (sourceUrl or sourceNewsId), a recorded document such as an email (sourceDocumentId, sent alone), a screenshot or PDF (multipart file part), or a page and screenshot, lists every company, organization, investor, and person it names, and identifies each one as POST /v1/lookup would, with the page as its source. A PDF's link annotation targets and printed URLs identify as URLs, and names from every readable text chunk identify as mentions under the same mention cap; names left out set truncated. A page fetched from sourceUrl first lists its own site's company, looked up by that site's URL, unless the site is a news outlet, a shared platform such as LinkedIn, or aVenture; when no record holds that site, it is added from the name the site declares, as POST /v1/lookup adds a URL. A caller that read the names itself sends them as mention instead, alone, so neither page nor screenshot leaves it. Answers within seconds: a name still identifying when the time is up carries failureReason instead of identification; send it alone to POST /v1/lookup. Each NO\_MATCH name whose own site a web search finds, and whose live page names it, is added as a new unpublished record, queued for research as scheduleEnrichment says, and returned as shell; adding it spends no research unit, and a name not added carries shellDetail saying why. Without Prefer: respond-async, JSON and text answers await filing within the live deadline. Only callers sending Prefer: respond-async release the identifications with filing pending in a lookup job; poll filing.statusUrl and merge its mention rows by mentionType and name. The event stream sends each identification immediately and each committed shell before complete. Needs a signed-in user. Each name spends one name-identification quota slot, as POST /v1/lookup does; reading a page, screenshot, or PDF also spends one natural-search slot and the free daily lookup allowance (20 name lookups per UTC day), sending mention does neither. JSON body: \{"sourceUrl":"[https://techcrunch.com/2024/01/01/example"}](https://techcrunch.com/2024/01/01/example"}) or \{"mention":\[\{"name":"Visa","type":"COMPANY"}]}; multipart: a file part plus an optional JSON body part.

Reference: https://docs.aventure.vc/api-reference/search/lookup-retired-mentions

## Authentication

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

## Request

### Query parameters

- `scheduleEnrichment` (boolean, optional) — Omitted or true queues research on each record this lookup adds; false adds it without queueing research. Its logo import starts either way, and a matched record is never queued here.

### Headers

- `Prefer` (string, optional) — Send respond-async to release identifications before shell filing completes; poll filing.statusUrl.

### Body (application/json)

This endpoint expects a LookupJobMutation.

- `mention` (list of LookupMention, optional) — Companies and people the caller already read, identified without sending the page or screenshot. Send them alone, without an article or file. On lookup jobs, maxNames is required and no records are created and no research is requested.
- `omitRecords` (boolean, optional) — POST /v1/lookup/mentions only: true answers each name with only its name, mentionType, failureReason, and identification status, stage, match, officialUrl, and detail: no entity or person rows and empty candidate and duplicate lists. Defaults to false, the full answer.
- `sourceDocumentId` (string, optional, nullable) — Id of a stored source document whose text is the article; send it alone. Only POST /v1/lookup/mentions reads it, and only for accounts with editing rights.
- `sourceNewsId` (integer, optional, nullable) — aVenture news id of the article; an id that names no stored article is an error.
- `sourceUrl` (string, optional, nullable) — URL of the article; read from aVenture news when stored there, otherwise fetched.
- `subject` (IdentificationSubject, optional, nullable) — Read-only: the subject of a GET or POST /v1/lookup or POST /v1/entities/lookup request sent with Prefer: respond-async, rolled over from a signed-in live lookup, or handed off for pending filing. This job preserves the route's options. Requests to create a job or read mentions must omit it.

## Response

### 200

Every mention as canonical JSON or complete compact text/plain.

- `mention` (list of LookupJobMention, required) — Each distinct name: the page's own company first, then the order the source shows them, with news outlets and the page's bylined authors last.
- `filing` (JobEnqueue, optional, nullable) — Present only for callers that sent Prefer: respond-async. Identifications are settled but shell filing is pending. Poll statusUrl until the lookup job completes; merge its filing outcomes by mentionType and name.
- `truncated` (boolean, optional) — True when the page names more than this answer holds: more names than one live lookup reads, or a body longer than the read limit. A lookup job with maxNames reads every name.

## Errors

### 400 Bad Request Error

Bad Request

- `allowanceType` (string, optional, nullable) — Which monthly allowance a BILLING_ALLOWANCE refusal exhausted.
- `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. Code groups include auth/session, rate limiting, job infrastructure, RBAC, external providers, image processing, R2 storage, search, and inference. Many codes describe server-side conditions a caller cannot fix: surface the error and stop rather than retry.
- `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Current slug owner
- `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 a service-unavailable 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)
- `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)
- `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)
- `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.
- `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. Code groups include auth/session, rate limiting, job infrastructure, RBAC, external providers, image processing, R2 storage, search, and inference. Many codes describe server-side conditions a caller cannot fix: surface the error and stop rather than retry.
- `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Current slug owner
- `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 a service-unavailable 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)
- `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)
- `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)
- `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.

### 402 Payment Required Error

Without a paid aVenture plan a caller gets a free daily allowance of name identifications per UTC day; past it the lookup answers 402 with code subscription_required (subscription_canceled, subscription_past_due, or subscription_paused when a plan lapsed), carrying limit, used, remaining, resetAt, and a Retry-After header.

- `allowanceType` (string, optional, nullable) — Which monthly allowance a BILLING_ALLOWANCE refusal exhausted.
- `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. Code groups include auth/session, rate limiting, job infrastructure, RBAC, external providers, image processing, R2 storage, search, and inference. Many codes describe server-side conditions a caller cannot fix: surface the error and stop rather than retry.
- `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Current slug owner
- `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 a service-unavailable 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)
- `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)
- `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)
- `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.
- `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. Code groups include auth/session, rate limiting, job infrastructure, RBAC, external providers, image processing, R2 storage, search, and inference. Many codes describe server-side conditions a caller cannot fix: surface the error and stop rather than retry.
- `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Current slug owner
- `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 a service-unavailable 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)
- `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)
- `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)
- `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.
- `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. Code groups include auth/session, rate limiting, job infrastructure, RBAC, external providers, image processing, R2 storage, search, and inference. Many codes describe server-side conditions a caller cannot fix: surface the error and stop rather than retry.
- `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Current slug owner
- `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 a service-unavailable 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)
- `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)
- `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)
- `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.
- `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. Code groups include auth/session, rate limiting, job infrastructure, RBAC, external providers, image processing, R2 storage, search, and inference. Many codes describe server-side conditions a caller cannot fix: surface the error and stop rather than retry.
- `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Current slug owner
- `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 a service-unavailable 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)
- `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)
- `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)
- `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.
- `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. Code groups include auth/session, rate limiting, job infrastructure, RBAC, external providers, image processing, R2 storage, search, and inference. Many codes describe server-side conditions a caller cannot fix: surface the error and stop rather than retry.
- `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Current slug owner
- `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 a service-unavailable 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)
- `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)
- `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)
- `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.
- `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. Code groups include auth/session, rate limiting, job infrastructure, RBAC, external providers, image processing, R2 storage, search, and inference. Many codes describe server-side conditions a caller cannot fix: surface the error and stop rather than retry.
- `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Current slug owner
- `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 a service-unavailable 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)
- `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)
- `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)
- `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.
- `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. Code groups include auth/session, rate limiting, job infrastructure, RBAC, external providers, image processing, R2 storage, search, and inference. Many codes describe server-side conditions a caller cannot fix: surface the error and stop rather than retry.
- `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Current slug owner
- `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 a service-unavailable 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)
- `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)
- `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)
- `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.
- `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. Code groups include auth/session, rate limiting, job infrastructure, RBAC, external providers, image processing, R2 storage, search, and inference. Many codes describe server-side conditions a caller cannot fix: surface the error and stop rather than retry.
- `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Current slug owner
- `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 a service-unavailable 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)
- `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)
- `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)
- `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.
- `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. Code groups include auth/session, rate limiting, job infrastructure, RBAC, external providers, image processing, R2 storage, search, and inference. Many codes describe server-side conditions a caller cannot fix: surface the error and stop rather than retry.
- `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Current slug owner
- `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 a service-unavailable 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)
- `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)
- `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)
- `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

### LookupMention

One company, Product or Service, or person a caller read from a page or screenshot it did not send.

- `name` (string, required) — Name as the source writes it.
- `type` (enum, required) — Whether the source names a company, a Product or Service (PRODUCT_SERVICE), or a person. A Product or Service resolves like a company first, then among Product and Service records when that finds no match, and never creates a new record.
  - Allowed values: `COMPANY`, `PERSON`, `PRODUCT_SERVICE`
- `providerName` (string, optional, nullable) — PRODUCT_SERVICE only: the organization that offers it, as the source writes it. When the offering resolves among offerings and its provider settles on an organization record, the match is limited to that record's offerings.
- `searchQuery` (string, optional, deprecated) — Ignored: the lookup searches by name. Still accepted so callers that send it keep working; omit it.

### IdentificationSubject

The company, Product, Service, or person to identify. Send the name, a URL it owns, or both, plus every location and source you have; a website or profile URL usually settles the answer without any model call.

- `context` (string, optional, nullable) — Specific facts in plain words: product, industry, employer and title, or founder names. Generic words like startup add nothing.
- `email` (string, optional, nullable) — Exact email address the record holds as a contact detail. Requires private visibility; when exactly one record of the requested kind holds it, that record matches before names or URLs.
- `employer` (list of string, optional) — Companies the subject is known to work at; a person filing accepts a LinkedIn profile only when one of them appears in the profile's employer fields.
- `filing` (RegistryFiling, optional, nullable) — Facts a government registry filing (SEC Form D, IRS, HRSA, NPPES) states about the organization. A lookup weighs each stored record's former names, addresses, team, registry ids, and founded year against them and matches without any model call only at about 220:1 odds. Invalid for a person lookup.
- `kind` (enum, optional) — Kind of record to identify when you know it: ENTITY for companies, funds, and firms (and their products or services); PERSON for people. Only that kind is looked up; typeRecord or providerId implies ENTITY.
  - Allowed values: `ENTITY`, `PERSON`
- `location` (string, optional, nullable) — City, region, or country, such as Austin, TX. Tells namesakes apart; not proof on its own.
- `name` (string, optional, nullable) — Name exactly as the source writes it, such as Acme AI or Jane Doe. Send name, url, or both; a name that is an absolute http(s) URL is read as url.
- `providerId` (string, optional, nullable) — Provider entity id for a Product or Service lookup. Omit it when the provider is unknown. With no typeRecord, searches both Product and Service. Invalid for a company type or a person lookup.
- `sourceIdentifier` (UniqueIdMutation, optional, nullable) — Permanent source identity with idType and identifier for a catalog source-binding type. Legacy source may be omitted or null; non-null labels are rejected. Requires private visibility and resolves before names or URLs.
- `sourceNewsId` (integer, optional, nullable) — aVenture news id of the article that mentions the subject; an unknown id is a 400.
- `sourceUrl` (string, optional, nullable) — URL of the article that mentions the subject; read from aVenture news when stored there, otherwise fetched.
- `typeRecord` (enum, optional, nullable) — Entity type to identify. A Product or Service never matches its provider organization, but a record stored under a neighboring type of the same family (Product or Service; Fund, Investment Firm, or Company) still matches, and a Business Line lookup sees both families. Invalid for a person lookup.
  - Allowed values: `Company`, `Investment Firm`, `Fund`, `Nonprofit`, `Government`, `Organization`, `Business Line`, `Product`, `Service`
- `url` (list of string, optional) — URLs the subject owns: its website, its LinkedIn company or person profile, an aVenture page, or a registry page. At most 10. Required when name is omitted. Put articles in sourceUrl.

### LookupJobMention

One company or person a source names, which stored record it is, and, from a standard article job or streaming lookup, the new unpublished record created when it is new. Bulk lookup only identifies names and creates no records.

- `entity` (list of EntityList, required) — POST /v1/lookup/mentions only: the candidate companies as search results show them, the match first, then by match probability and duplicate-check score.
- `mentionType` (enum, required) — Whether the source names a company, a Product or Service, or a person.
  - Allowed values: `COMPANY`, `PERSON`, `PRODUCT_SERVICE`
- `name` (string, required) — Name as the source writes it.
- `person` (list of Person, required) — POST /v1/lookup/mentions only: the candidate people as search results show them, ranked like entity.
- `enrichmentRunId` (string, optional, nullable) — Research request filed for this mention, if any.
- `failureReason` (string, optional, nullable) — One sentence on why this name could not be identified; absent otherwise.
- `identification` (Identification, optional, nullable) — The lookup of this name with the source as its context: MATCHED names the stored record, NEEDS_REVIEW lists the candidates, NO_MATCH means none is stored. Absent when failureReason is set.
- `shell` (EntityPersonOwner, optional, nullable) — New unpublished record aVenture created, at no charge, for a NO\_MATCH name whose own live site names it. enrichmentRunId names research filed for it, if any; to file research yourself, send its entityId to POST /v1/entities/\{entityId}/enrichments or its personId to POST /v1/people/\{personId}/enrichments.
- `shellDetail` (string, optional, nullable) — Why no new record was created for this NO_MATCH name.

### JobEnqueue

Accepted asynchronous app job enqueue response.

- `jobId` (string, required)
- `mode` (string, required)
- `statusUrl` (string, required) — Endpoint to poll for asynchronous job state and result.
- `deduped` (boolean, optional, nullable) — `true` when an earlier run answers this request instead of a new one; absent on routes that do not report deduplication.

### CurrentSlugOwner

Current slug owner

- `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) — Existing article id (NewsId.value) that already owns this publication + URL pair.
  - `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 current owner that already holds the normalized URL 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) — Owner the caller attempted to attach 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.

### 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.

### RegistryFiling

Facts a government registry filing (SEC Form D, IRS, HRSA, NPPES) states about the organization. A lookup weighs each stored record's former names, addresses, team, registry ids, and founded year against them and matches without any model call only at about 220:1 odds. Invalid for a person lookup.

- `address` (list of RegistryFilingAddress, optional) — Addresses the filing states: principal office, business, mailing.
- `incorporatedYear` (integer, optional, nullable) — Year of incorporation the filing states.
- `nameFormer` (list of string, optional) — Earlier names the filing or registry states for this organization; the subject name is its current filed name.
- `person` (list of RegistryFilingPerson, optional) — People the filing names: executive officers, directors, promoters.
- `uniqueId` (list of UniqueIdMutation, optional) — Registry ids the filing states, such as secCik, ein, or npi. A record holding the same id is strong evidence; a record holding a different id of the same type is a different filer and never matches.

### UniqueIdMutation

Create or update payload for attaching an external identifier to an owner. For PATCH, omitted fields preserve their existing values and source may be explicitly cleared with null.

- `idType` (string, optional, nullable) — Identifier type token, for example ein, secCik, or ticker.
- `identifier` (string, optional, nullable) — Identifier value as issued by the registry.
- `source` (string, optional, nullable) — Optional attribution source label for the mapping.

### EntityList

Narrow entity row for list and batch-list reads. Keeps core identity, enrichment, governed research detail, accelerator participation, and fundraise rounds while omitting detail-only relationship, newsArticle, person, sitemap, and research snippet sections. Classification enrichment is current-only on list rows; use the entity classifications subresource with includeInactive=true to audit historical joins.

- `core` (Entity, required) — Flat entity core — identity, naming, status, image, and source metadata
- `enrichment` (EntityEnrichment, required) — Supplemental entity data — addresses, classification tags, funding, text content, and URL links
- `fundraiseRound` (list of EntityFundraiseTransaction, required) — Fundraise rounds associated with this entity
- `research` (EntityListResearch, required) — List-safe research disclosure without text snippets
- `profileStatus` (EntityProfileStatus, optional) — Derived profile status; read-only.
- `provider` (EntityProvider, optional, nullable) — Fund manager firm or product/service provider; null otherwise.
- `semanticMatch` (ContentEmbeddingMatch, optional, nullable) — Semantic embedding match evidence populated only for semantic list reads.

### Person

Canonical person core record

- `id` (string, required) — Canonical person UUID
- `image` (PersonImage, required) — Read projection: person image fields for detail/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) — Canonical lowercase URL slug for the resource
- `text` (EntityTextBundle, required) — Grouped person text content
- `bioUpdatedAt` (datetime, optional, nullable) — When the person's short text (bio) row was last edited; absent when the person has no short-text row.
- `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)
- `nickname` (string, optional, nullable)
- `publicId` (string, optional, nullable) — Stable, immutable public handle (e.g. `pV1StGXR8Z5ab`). Never changes once assigned, unlike the slug. Null on projections that do not select it and on rows still awaiting handle backfill.
- `semanticMatch` (ContentEmbeddingMatch, optional, nullable) — Semantic embedding match evidence populated only for semantic people reads.
- `suffix` (string, optional, nullable)
- `updatedAt` (datetime, optional, nullable) — Last modification timestamp

### Identification

Which existing entity or person satisfies the requested identity, type, and provider scope, how that was settled, and the candidates considered, most probable first.

- `candidate` (list of IdentificationCandidate, required) — Records considered, most probable first.
- `detail` (string, required) — One sentence naming what settled the answer or what the user must decide.
- `duplicate` (list of IdentificationCandidate, required) — Other records that appear to describe the same subject as match. Empty when none were found.
- `status` (enum, required) — Use the scoped match, record scoped absence, or refine an ambiguous identity with evidence.
  - Allowed values: `MATCHED`, `NO_MATCH`, `NEEDS_REVIEW`
- `urlHostForm` (list of UrlHostFormResolution, required) — Fresh backend URL evidence gathered when verifyUrl=true; empty otherwise.
- `acceptedOwner` (EntityPersonOwner, optional, nullable) — The owner to bind without confirming: a match no language model settled whose record an exact id, URL, slug, or registry id proved, or whose name spells the requested name up to a trailing legal or group form (an Investment Firm also by its bare brand); or created when its name keeps the requested name as whole words. Absent otherwise: confirm the match or created record before binding it.
- `created` (IdentificationCandidate, optional, nullable) — The new unpublished record a NO_MATCH subject with a proven own site was added as, or the existing one that already held its website. Absent otherwise.
- `enrichmentRunId` (string, optional, nullable) — Research request filed for the created record; absent without created, when the lookup did not request research on it, and when the record is already public.
- `filing` (JobEnqueue, optional, nullable) — Present only for callers that sent Prefer: respond-async. The identification is settled, but filing is pending. Poll statusUrl until the lookup job completes and use its identification; do not treat this as a final unfiled absence.
- `inserted` (boolean, optional, nullable) — Present only for callers that sent Prefer: respond-async. For a completed filing job, whether that request inserted created.
- `languageModelSettled` (boolean, optional, nullable) — true when the match was settled on a second, slower review; confirm it before relying on it. Absent otherwise.
- `match` (IdentificationCandidate, optional, nullable) — The matched record when status is MATCHED.
- `officialUrl` (string, optional, nullable) — The subject's own website or profile page found in web search, or a supplied LinkedIn person profile verified against the subject's name and employer for a deterministic match. It may be a profile page on another site rather than the subject's own domain. Only the verified supplied profile may be attached to an existing person matched by name and employer.

### 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.

### 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 owns a normalized URL.

- `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.

### RegistryFilingAddress

One address a registry filing states.

- `addressLine1` (string, optional, nullable) — Street line, such as 6797 Winchester Circle.
- `cityName` (string, optional, nullable) — City name.
- `postalCode` (string, optional, nullable) — Postal or ZIP code.
- `stateAbbrev` (string, optional, nullable) — State or region abbreviation.

### RegistryFilingPerson

One person a registry filing names.

- `executiveOfficer` (boolean, required) — True when the filing names this person an executive officer.
- `nameFirst` (string, required) — Given name.
- `nameLast` (string, required) — Family name.

### Entity

Flat entity core record — identity, naming, status, image, and source metadata. An entity is our umbrella record for organizations such as companies, funds, investment firms and investors, accelerators, nonprofits, and government agencies, plus products and services connected to those organizations. Nested as .core inside EntityList for default list reads and EntityDetail for detail reads.

- `id` (string, required) — Unique entity identifier
- `image` (EntityImage, required) — Logo and monogram image metadata
- `nameAlias` (list of EntityNameAliasEntityAliasType, required) — All names this entity has been known by — current alternates, DBAs, former names, and rebrand-source identities. Naming history (e.g. `Metaphor Systems` for the current `Exa` entity) lives here; never as a separate relationship type or `formerName` field.
- `nameBrand` (string, required) — Resolved display brand name
- `slug` (string, required) — URL-safe identifier
- `typeRecord` (enum, required) — Entity type classification
  - Allowed values: `Company`, `Investment Firm`, `Fund`, `Nonprofit`, `Government`, `Organization`, `Business Line`, `Product`, `Service`
- `defaultCurrency` (string, optional, nullable) — Default currency code (ISO 4217)
- `foundedYear` (integer, optional, nullable) — Year the entity was founded
- `lastModifiedAt` (datetime, optional, nullable) — Provenance-grounded last-modified watermark (schema.org dateModified). Advances only when a real, consumer-meaningful data point changes via a recorded provenance event — never on timestamp-only writes, migrations, or index refreshes. Pairs with createdAt (dateCreated) and grounds the sitemap lastmod.
- `nameLegal` (string, optional, nullable) — Registered legal name
- `operatingStatus` (string, optional, nullable) — Current operating status. Use Acquired Subsidiary when the entity was acquired and still operates; use Closed (Acquihire) when the entity was acquired for its team and shut down, rendering like Closed everywhere; use Acquired only when it is terminal, folded, or closed.
- `publicId` (string, optional, nullable) — Stable, immutable public handle (e.g. `eV1StGXR8Z5a`). Never changes once assigned, unlike the slug. Null on projections that do not select it and on rows still awaiting handle backfill.
- `publicUrl` (string, optional, nullable) — Absolute public profile URL on the aVenture front-end, e.g. `https://aventure.vc/non-profits/{slug}`, derived from the typeRecord's canonical route family. Null when the route needs relationship context or the record has no direct public SSR route (Business Line, Organization, Product, Service, or a non-public slug). EntityDetail.publicUrl resolves Business Line parent context. Product/Service pages are provider-nested: compose the provider entity's publicUrl + `/products-services/` + this record's slug, or consume the sitemap-urls slot paths, which already emit the composed child routes.
- `sitemap` (EntitySitemap, optional, nullable) — Sub-route eligibility, populated by the sitemap projection. Null on non-sitemap reads to keep thin payloads compact.
- `updatedAt` (datetime, optional, nullable) — Last modification timestamp

### EntityEnrichment

Supplemental entity data — addresses, classification tags, funding, text content, and URL links

- `address` (list of Address, required) — Current addresses. Full-detail search carries only the headquarters row (headquartersAddressId); GET /v1/entities/\{entityId}/addresses lists every row.
- `classification` (EntityClassification, required) — Entity classifications. Single-detail and full-detail batch reads include history; list, default batch, and similar-entity reads may return only current classifications. Use GET /v1/entities/\{entityId}/classifications?includeInactive=true for the full history.
- `text` (EntityTextBundle, required) — Grouped entity/person text content
- `urlLink` (list of EntityUrlLink, required) — URL link filter values
- `fundingDetail` (EntityFundingDetail, optional, nullable) — Funding aggregate: enrichment.fundingDetail.totalRaisedUsd is the USD sum of recorded round amounts with available FX rates, not a complete lifetime total when round amounts or rates are missing.
- `headquartersAddressId` (integer, optional, nullable) — Operating headquarters address id: match enrichment.headquartersAddressId to enrichment.address[].id. Absent when no current dominant (operating) address is on record, even when a domicile (legal seat) exists. Deprecated isHq marks the legal seat, not the operating HQ.
- `headquartersRemoteAsOf` (datetime, optional, nullable) — When aVenture last verified that this entity runs no operating headquarters (a remote company); absent while a current operating headquarters is on record or no unexpired verification exists.

### EntityFundraiseTransaction

Canonical fundraise transaction view. ONE row per discrete round. An entity that raised pre-seed, seed, and Series A is THREE rows. Combined or rolled-up totals are never modeled here — total raised is a sum across rows.

- `id` (string, required) — Canonical fundraise transaction UUID
- `sourceAttribution` (list of FundraiseInvestmentAttribution, required)
- `amountRaised` (long, optional, nullable)
- `createdAt` (datetime, optional, nullable)
- `currency` (string, optional, nullable)
- `dataConfidence` (enum, optional, nullable) — Data confidence level
  - Allowed values: `High`, `Medium`, `Low`, `Verified`
- `dateAnnounced` (string, optional, nullable) — Occurrence date for the round when known; null when unknown. Use the announcement date, otherwise the earliest source publication date announcing the round, preserving source precision.
- `dateFundingComplete` (string, optional, nullable) — Source-stated funding completion date or instant, preserving source precision.
- `dateInvestorExit` (datetime, optional, nullable)
- `entity` (EntityFundraiseTransactionEntity, optional, nullable) — Entity projection used inside FundraiseTransaction responses
- `financialInstrumentType` (enum, optional, nullable) — Source-reported financial instrument persisted for this round.
  - Allowed values: `SAFE`, `Convertible Note`, `Preferred Stock`, `Common Stock`, `Other Equity`, `Bond`, `Loan`, `Other Debt`, `Grant`, `Token`
- `investor` (list of EntityFundraiseInvestorJoin, optional, nullable)
- `investorAttribution` (FundraiseInvestmentAttribution, optional, nullable) — Investor-specific attribution when returned from investor-perspective investment views. amountInvested is not added to amountRaised; it is the selected investor's whole investment in this round: its joins here (one per vehicle, such as a CEA and a SAFE) summed. joinId names one of those joins.
- `investorCount` (integer, optional, nullable) — Source-reported number of investors in the round. This can exceed the identified investor joins when a source reports a total without naming every investor.
- `publicSource` (EntityResearchPublicSource, optional, nullable) — Published page supporting this round, from its latest economic value write.
- `round` (string, optional, nullable) — Display round label derived from the stored round label, round type, and financial instrument type (an 'Initial Public Offering' round of type IPO reads as IPO); it can differ from the round label written.
- `roundType` (string, optional, nullable) — Source-reported classification persisted for this round (e.g. Public for a SPAC Merger); it is not derived from the round label.
- `updatedAt` (datetime, optional, nullable)
- `valuationPostMoney` (long, optional, nullable)
- `valuationPreMoney` (long, optional, nullable)

### EntityListResearch

Nested research projection owned by EntityList rows, excluding snippet text.

- `acceleratorParticipation` (list of EntityAcceleratorParticipation, required) — Joined accelerator participation derived from governed accelerator research rows
- `detail` (list of EntityResearchDetail, required) — Flat governed research detail rows filtered by visibility

### EntityProfileStatus

Read-only profile status derived from stored kind, ownership, and operating status. Funding stage stays on enrichment.fundingDetail.stage.

- `headline` (string, required) — Headline label for this record.
- `isAcquired` (boolean, optional, nullable) — Operating status records an acquisition; null when no status is established.
- `isClosed` (boolean, optional, nullable) — Stopped operating with no surviving business; null when no status is established.
- `isTerminal` (boolean, optional, nullable) — Operating status is terminal; null when no status is established.

### EntityProvider

The current entity a fund or product/service is offered by: a fund's manager organization, a product/service's provider, through its current primary edge to a live, listed provider. Null on every other entity type.

- `entity` (Entity, required) — Provider core. Its image is the provider's own logo, else the logo of the provider's current parent entity.
- `relationshipType` (enum, required) — Relationship linking the subject to this provider.
  - Allowed values: `fundManagerFirm`, `productService`
- `headquarters` (Address, optional, nullable) — The provider's current headquarters address.

### ContentEmbeddingMatch

Nearest-neighbor content embedding match evidence.

- `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) — One-based semantic rank within the returned ANN candidate set.
- `sourceHash` (string, required) — SHA-256 hash of the source content.
- `sourceId` (string, required) — Content embedding source identifier.
- `sourceType` (string, required) — Stored content embedding source partition.

### PersonImage

Read projection: person image fields for detail/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: `nickname`, `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

### IdentificationCandidate

One existing record considered as the subject.

- `owner` (EntityPersonOwner, required) — Entity identity (entityId) or person identity (personId). record.typeRecord distinguishes a company, product, or service; read it with GET /v1/entities/\{entityId} or GET /v1/people/\{personId}.
- `record` (SearchDuplicateCandidateScore, required) — The record with its duplicate-check score and reasons; score 0 with no reason means only vector similarity proposed it.
- `createdAt` (datetime, optional, nullable) — When the record was created. A record created moments before the lookup is newly added and not yet researched.
- `dataCompletionCoverage` (integer, optional, nullable) — Percentage, 0 to 100, of this company's core profile facts that aVenture holds, as last computed. It measures how complete the record is, not how likely it is the subject. Absent for people and for companies not yet computed.
- `domainAgreement` (enum, optional) — Whether this record's stored website agrees with a url the subject supplied; see IdentificationDomainAgreement.
  - Allowed values: `MATCH`, `CONFLICT`, `UNKNOWN`
- `duplicateBasis` (enum, optional) — How this record was checked as the picked record stored again; absent when it was not checked.
  - Allowed values: `STUB`, `SHARED_FACT`, `JUDGED`
- `duplicateProbability` (double, optional, nullable) — Probability, 0 to 1, that this record is the picked record stored again; present only when duplicateBasis is JUDGED.
- `foundedYear` (integer, optional, nullable) — The year the entity was founded, when stored; absent for people and records without one.
- `probability` (double, optional, nullable) — Confidence, 0 to 1, that this record is the subject: the one confidence to act on. Absent when an exact id, URL, slug, or registry-id match settled the answer, which needs no confidence, or when this record was not compared.
- `updatedAt` (datetime, optional, nullable) — When the stored record was last updated.
- `website` (string, optional, nullable) — The record's current primary website URL as stored. Compare it to the subject's own url before trusting a same-name match; domainAgreement already does.

### UrlHostFormResolution

Verified preferred host form of a submitted URL and any fresh HTTP evidence.

- `concluded` (boolean, required) — True when the profile platform owns the canonical URL form, or live evidence landed on the submitted apex/www host pair or exact submitted host.
- `submittedUrl` (string, required) — The URL submitted for this probe.
- `url` (string, required) — Preferred same-site URL; submittedUrl when evidence is inconclusive.
- `crawlCdnProvider` (enum, optional, nullable) — Edge provider observed by this 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 requirement established from static and rendered readings of the same page.
  - Allowed values: `static`, `jsRequired`, `jsEnhanced`
- `landingHost` (string, optional, nullable) — Host the live answer landed on after redirects; absent for other outcomes.
- `outcome` (enum, optional) — Typed outcome from the fresh probe; absent when no probe ran.
  - Allowed values: `success`, `refusal`, `rejection`, `noResponse`, `transient`
- `status` (string, optional, nullable) — Fresh HTTP status or classified probe result; absent when no probe ran.

### EntityImage

Grouped entity image fields for square, standard, and monogram logo state

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

### EntityNameAliasEntityAliasType

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: `alternativeDba`, `relatedLegal`

### EntitySitemap

Sub-route eligibility GATE for sitemap.xml emission, not a write receipt. Each boolean is true only when the underlying rows EXIST AND every entity that sub-route renders (this entity and any counterpart, e.g. the acquired/acquirer company behind `hasAcquisitions`) currently passes publication visibility (not hidden, on sitemap). A `false` flag when you know the data exists means an unmet visibility prerequisite -- publish the hidden entity -- confirmed against the owning command-side read; it is an active gate result, not refresh lag, and a flag being `false` says nothing succeeded-and-is-fine. Served from a materialized projection (`mv_entity_sitemap_url_slots`) refreshed asynchronously, so a `true` flag can trail a gate that was just satisfied, but a successful write alone does not flip any flag.

- `hasAnalysis` (boolean, required) — Whether the profile Analysis sub-route should be emitted.
- `hasEmployees` (boolean, required) — Whether the profile Employees sub-route should be emitted.
- `hasFundraising` (boolean, required) — Whether the profile Fundraising sub-route should be emitted.
- `hasNews` (boolean, required) — Whether the profile News sub-route should be emitted.
- `productServiceSlug` (list of string, required) — Slugs of related Product/Service entities that should each get their own `/companies/<slug>/products-services/<productSlug>` URL, capped at `MAX_PRODUCT_SERVICE_SLUGS` server-side. Derived from current `productService` relationships in either stored direction; the entity relationships resource is the authoritative, read-your-writes view of those joins.
- `hasAcquisitions` (boolean, optional, default: false) — Whether `/companies/<slug>/acquisitions` should be emitted. True only when an acquisition relationship exists AND both the acquired and acquirer entities are publicly visible. A confirmed acquisition relationship row with this flag `false` (or with `entities acquisitions list` returning zero rows) means a counterpart entity is still hidden -- publish it -- it is a visibility gate, not list lag.

### Address

Canonical address record for entity and person payloads

- `address` (integer, optional, nullable) — Legacy address row identifier
- `addressLine1` (string, optional, nullable) — Canonical street address line.
- `addressLine2` (string, optional, nullable) — Canonical suite, floor, or secondary address line.
- `association` (list of AddressAssociation, optional) — Role-period associations for this physical address
- `city` (AddressCity, optional, nullable) — City reference
- `country` (AddressCountry, optional, nullable) — Country reference
- `countryAbbrev` (string, optional, nullable)
- `createdAt` (datetime, optional, nullable)
- `fullAddress` (string, optional, nullable) — Single-line formatted address
- `id` (integer, optional, nullable) — Id of this listed row's first association; PATCH and DELETE address one association by its association[].id, so a row holding several roles needs one call each
- `latitude` (double, optional, nullable)
- `longitude` (double, optional, nullable)
- `postalCode` (string, optional, nullable) — Canonical postal or ZIP code.
- `state` (AddressState, optional, nullable) — State or region reference
- `stateAbbrev` (string, optional, nullable) — Canonical state or region abbreviation.
- `street` (string, optional, nullable)
- `updatedAt` (datetime, optional, nullable)
- `isCurrent` (boolean, optional, nullable, deprecated) — Deprecated aggregate compatibility flag; true when any association is current
- `isHq` (boolean, optional, nullable, deprecated) — Deprecated legacy flag marking the current legal/registered seat (domicile), not the operating HQ. Use enrichment.headquartersAddressId matched to enrichment.address[].id for the operating headquarters.
- `isPrimary` (boolean, optional, nullable, deprecated) — Deprecated legacy flag marking the primary display address

### EntityClassification

Entity classifications grouped by bucket. Reads return current classifications by default; includeInactive=true adds inactive and historical ones.

- `geoLocationExposure` (list of EntityTag, optional, default: []) — Geographic markets where the entity earns revenue and serves customers (e.g. North America, EMEA, APAC). This is the sales/market footprint classification — NOT the HQ or office location. HQ and office locations belong on the address record (enrichment.address), not this bucket. A London-headquartered company selling globally should have North America and EMEA here, not United Kingdom.
- `industry` (list of EntityTag, optional, default: []) — Industry filter values
- `mainProduct` (list of EntityTag, optional, default: []) — Main product filter values
- `standardizedClassification` (list of StandardizedClassification, optional, default: []) — Standardized taxonomy classifications such as NAICS, SIC, or ISIC codes, with category and code metadata.
- `tag` (list of EntityTag, optional, default: []) — Tag filter values
- `typeCustomer` (list of EntityTag, optional, default: []) — Type customer filter values
- `typeModel` (list of EntityTag, optional, default: []) — Type model filter values
- `typeOwnership` (list of EntityTag, optional, default: []) — Type ownership filter values
- `typeRevenue` (list of EntityTag, optional, default: []) — Type revenue filter values
- `typeTechnologyUsed` (list of EntityTag, optional, default: []) — Type technology used filter values

### EntityUrlLink

Canonical URL link resource with owner, status, crawl, and source metadata. Lifecycle state (current vs former, primary vs secondary) is encoded by `isCurrent` and `isPrimary` — `urlType` is the canonical platform role only and write values come from GET /v1/url-types. Readers accept new platform roles 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 role.

- `url` (string, required) — Canonical absolute URL after storage and live same-site host normalization.
- `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)

### EntityFundingDetail

Aggregate view of an entity's fundraising activity

- `fundingRoundCount` (integer, required) — Recorded round count, including rounds with no recorded amount.
- `investorCount` (integer, required)
- `totalRaised` (double, required) — Sum of recorded round amounts in their original currencies, excluding rounds with no amount; not a complete lifetime total when amounts are missing. Use totalRaisedUsd for a USD aggregate; totalRaised has no single currency when currency is null.
- `unconvertedRoundCount` (integer, required) — Rounds with an amount but no announcement-date USD rate, excluded from totalRaisedUsd. Does not count rounds with no recorded amount; zero does not prove the total is complete.
- `currency` (string, optional, nullable) — ISO 4217 currency of totalRaised, latestValuation, and mostRecentAmount: the one currency every round uses, else the entity's own currency when rounds carry none. Null when rounds use more than one currency or no fundraise rollup exists, so these amounts have no single currency.
- `latestValuation` (double, optional, nullable)
- `mostRecentAmount` (double, optional, nullable)
- `mostRecentDate` (date, optional, nullable)
- `stage` (string, optional, nullable) — Funding stage only, emitted by the entity fundraise rollup. The record headline is profileStatus.headline; the entity-type and operating-status members are deprecated as a headline and retire in a later contract change. Transaction classifications such as Debt, IPO, and Acquisition are not entity stages.
- `totalRaisedUsd` (double, optional, nullable) — USD aggregate at enrichment.fundingDetail.totalRaisedUsd: sums only recorded round amounts with an announcement-date ECB/World Bank rate. Excludes rounds with no amount or no rate, so do not report it as a complete lifetime total when either is missing. Zero when no round converts; null when no rollup exists. Use instead of totalRaised across currencies; see unconvertedRoundCount for missing rates only.

### FundraiseInvestmentAttribution

Investor-specific attribution: an investor's investment in one round (its joins there, one per vehicle, summed) or, in source attribution, one investor join

- `attributionType` (enum, required) — How this attribution row participates in the investor view.
  - Allowed values: `direct`, `managedFund`
- `joinId` (string, required) — Fundraise investor join identifier; for a summed investment, one of the joins it sums
- `leadInvestor` (boolean, required) — Whether this investor is the lead investor for the round — the lead/anchor investor that set the round terms or made the primary commitment.
- `transactionId` (string, required) — Fundraise transaction identifier
- `amountInvested` (double, optional, nullable) — Investor-level attributed amount invested in the fundraise transaction currency: the investor's joins on the round summed for an investment, or one join's amount in source attribution. Serialized as a plain JSON number such as 220000 or 123456.78; no currency sign, currency code, comma grouping, or abbreviated amount text is valid.
- `beneficialEntityId` (string, optional, nullable) — Investment firm entity receiving the rollup attribution.
- `fundManagerRelationshipId` (integer, optional, nullable) — Fund-manager relationship id when the attribution rolls up through a managed fund.
- `recordedEntityId` (string, optional, nullable) — Entity recorded directly on the fundraise investor join.
- `round` (RoundLabel, optional, nullable) — Round label for the attributed participation

### EntityFundraiseTransactionEntity

Entity projection used inside FundraiseTransaction responses

- `core` (Entity, required) — Flat entity core record — identity, naming, status, image, and source metadata. An entity is our umbrella record for organizations such as companies, funds, investment firms and investors, accelerators, nonprofits, and government agencies, plus products and services connected to those organizations. Nested as .core inside EntityList for default list reads and EntityDetail for detail reads.
- `fundingDetail` (EntityFundingDetail, optional, nullable) — Aggregate view of an entity's fundraising activity

### EntityFundraiseInvestorJoin

Canonical fundraise investor join row for API serialization

- `createdAt` (datetime, required) — Created timestamp
- `id` (string, required) — Fundraise investor join identifier
- `investor` (EntityPersonOwner, required) — Investor identity, nested: investor.entityId for a firm/fund investor or investor.personId for an angel — exactly one is set. investorName and investorSlug on this row name that investor; never read each id separately.
- `leadInvestor` (boolean, required) — Whether this investor is the lead investor for the round — the lead/anchor investor that set the round terms or made the primary commitment.
- `transactionId` (string, required) — Fundraise transaction identifier
- `updatedAt` (datetime, required) — Updated timestamp
- `amountInvested` (double, optional, nullable) — Investor-level attributed amount invested in the fundraise transaction currency. Serialized as a plain JSON number such as 220000 or 123456.78; no currency sign, currency code, comma grouping, or abbreviated amount text is valid.
- `financialInstrumentType` (enum, optional, nullable) — Financial instrument/vehicle for this investor's participation in the round (e.g. SAFE, Preferred Stock, Convertible Note). Distinct from the round-level financialInstrumentType: a single round can record different vehicles per investor join — e.g. an accelerator batch holding a capped SAFE and an uncapped-MFN SAFE as two joins.
  - Allowed values: `SAFE`, `Convertible Note`, `Preferred Stock`, `Common Stock`, `Other Equity`, `Bond`, `Loan`, `Other Debt`, `Grant`, `Token`
- `investorName` (string, optional, nullable) — Investor display name, read from the investor's own entity record (brand name, else legal name) or person record (full name). Omitted when that record holds no name.
- `investorSlug` (string, optional, nullable) — Investor profile slug, read from the investor's own entity or person record; open the profile with it instead of resolving investor ids one by one.

### EntityResearchPublicSource

Published page behind a research value, read from the provenance event that wrote the value. Absent for internal sources, privacy, terms, or other legal pages, and, in public views, suppressed secondary sources such as data aggregators.

- `recordedAt` (datetime, required) — When aVenture recorded the value from this page.
- `sourceDetail` (string, required) — URL of the published page supporting the value.
- `lastFetchedAt` (datetime, optional, nullable) — When aVenture last fetched this page; absent when no stored capture of it exists.
- `publishedAt` (datetime, optional, nullable) — When the page was published, from aVenture's news record for the same URL; absent when the page is not a known news article.

### EntityAcceleratorParticipation

Flattened accelerator participation derived from acceleratorParticipant relationship rows and joined to the canonical accelerator entity.

- `accelerator` (Entity, required) — Canonical thin accelerator entity from the acceleratorParticipant relationship
- `acceleratorName` (string, required) — Full accelerator participation name, including program detail
- `asOfDate` (string, required) — Source-stated participation effective date or instant
- `id` (string, required) — Stable participation identifier anchored to the contributing acceleratorParticipant relationship
- `batch` (string, optional, nullable) — Accelerator batch or cohort
- `program` (string, optional, nullable) — Accelerator program name, when the source distinguishes one
- `status` (string, optional, nullable) — Accelerator participation status

### EntityResearchDetail

Research detail record for an entity.

- `entityId` (string, required) — Canonical entity UUID
- `id` (integer, required)
- `typeResearchDetail` (string, required)
- `valueType` (enum, required) — Output kind for governed research detail values
  - Allowed values: `text`, `numeric`, `monetary`, `percentage`, `date`
- `asOfDate` (string, optional, nullable) — Date the research detail applies to, preserving the source's calendar or timestamp precision.
- `currentEligible` (boolean, optional, nullable) — Eligibility as a current fact at response time; multiple rows may be eligible. Select the first eligible row in the returned authoritative order.
- `derivedRange` (ResearchDerivedRange, optional, nullable) — Read-only range derived only for targetDateAbsolute detail rows
- `discreteValue` (double, optional, nullable)
- `publicSource` (EntityResearchPublicSource, optional, nullable) — Published page behind this value, read from the provenance event that wrote it; absent for internal sources.
- `textValue` (string, optional, nullable)
- `updatedAt` (datetime, optional, nullable)
- `valueResearchDetail` (string, optional, nullable)

### 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

### AddressAssociation

One role and effective period for a physical address association

- `id` (integer, required) — Address association row identifier
- `isCurrent` (boolean, required) — Whether this role is currently relevant
- `endDate` (date, optional, nullable) — Last known day this role applied
- `role` (enum, optional, nullable) — Address association role; null means unclassified
  - Allowed values: `domicile`, `dominant`, `origin`
- `startDate` (date, optional, nullable) — First known day this role applied

### AddressCity

City reference used inside an address

- `name` (string, required) — City name
- `id` (integer, optional, nullable)

### AddressCountry

Country reference used inside an address

- `name` (string, required) — Country name
- `countryCodeChar2` (string, optional, nullable) — Two-letter country code
- `countryCodeChar3` (string, optional, nullable) — Three-letter country code
- `id` (integer, optional, nullable)
- `unRegion` (string, optional, nullable)
- `unSubregion` (string, optional, nullable)

### AddressState

State or region reference used inside an address

- `name` (string, required) — State or region name
- `id` (integer, optional, nullable)
- `stateAbbrev` (string, optional, nullable) — State or region abbreviation

### EntityTag

Classification tag. Catalog and search responses describe the tag itself; entity classification responses also carry classificationId and the entity's current and primary flags.

- `name` (string, required) — Display name. Capped to the standardized taxonomy storage limit because this shared read contract covers NAICS/SIC/ISIC-style classification labels as well as editorial tags.
- `registry` (string, required) — Join registry this classification belongs to; pass it as registry when reading or changing the join by classificationId.
- `id` (integer, required) — Classification tag id.
- `name` (string, required) — Name
- `type` (string, required) — Canonical tag classification type
- `isCurrent` (boolean, optional, nullable)
- `isPrimary` (boolean, optional, nullable)
- `bucket` (string, optional, nullable) — Canonical classification bucket key; `type` is the value tag search and the catalog accept.
- `classificationId` (integer, optional, nullable) — Id of this classification on the entity; null in catalog and search results.
- `createdAt` (datetime, optional, nullable) — Tag creation timestamp, not the time the entity received this tag.
- `isCurrent` (boolean, optional, nullable) — In catalog and search results, whether the tag is active; in entity classification responses, whether the classification is current for the entity.
- `isPrimary` (boolean, optional, nullable) — Whether this is the entity's primary classification in its bucket; null in catalog and search results.
- `slug` (string, optional, nullable) — Slug
- `updatedAt` (datetime, optional, nullable) — Tag update timestamp, not the time the entity's classification changed.

### StandardizedClassification

Industry or ownership classification from a standard taxonomy such as NAICS, SIC, or ISIC, with its category, code, and hierarchy level.

- `category` (string, required) — Standardized category token.
- `id` (integer, required) — Standardized classification id.
- `name` (string, required) — Name
- `registry` (string, required) — Join registry this classification belongs to; pass it as registry when reading or changing the join by classificationId.
- `classificationId` (integer, optional, nullable) — Id of this classification on the entity; null in catalog and search results.
- `code` (integer, optional, nullable) — Standardized classification code when present.
- `createdAt` (datetime, optional, nullable) — Registry row creation timestamp.
- `isCurrent` (boolean, optional, nullable) — Standardized reference rows are current by definition.
- `isPrimary` (boolean, optional, nullable) — Whether this is the entity's primary classification in this category.
- `level` (integer, optional, nullable) — Hierarchy level when present.
- `updatedAt` (datetime, optional, nullable) — Registry row update timestamp.

### RoundLabel

Round participation label - shared by entity and person investor participation

- `round` (string, required)

### ResearchDerivedRange

Read-only derived range projection for targetDateAbsolute detail rows

- `asOfDate` (string, required) — Observation date from the source detail row
- `bucket` (enum, required) — Derived bucket using inclusive 0, 3, 6, 12, and 24 month boundaries
  - Allowed values: `pastDue`, `withinThreeMonths`, `threeToSixMonths`, `sixToTwelveMonths`, `twelveToTwentyFourMonths`, `beyondTwoYears`
- `monthsFromNow` (integer, required) — Whole months from now() to targetDate
- `targetDate` (datetime, required) — Absolute target date stored for a targetDateAbsolute detail row

## Examples

**Request**

```json
{}
```

**Response**

```json
{
  "mention": [
    {
      "entity": [
        {
          "core": {
            "id": "string",
            "image": {
              "isMonogram": true,
              "logo": "string",
              "logoSquare": "string",
              "logoSquareVariant": [
                {
                  "contentType": "string",
                  "height": 1,
                  "path": "string",
                  "width": 1
                }
              ],
              "logoVariant": [
                {
                  "contentType": "string",
                  "height": 1,
                  "path": "string",
                  "width": 1
                }
              ]
            },
            "nameAlias": [
              {
                "name": "Bun",
                "displayable": true,
                "type": "alternativeDba"
              }
            ],
            "nameBrand": "string",
            "slug": "aventure-vc",
            "typeRecord": "Company",
            "defaultCurrency": "string",
            "foundedYear": 1,
            "lastModifiedAt": "2024-01-15T09:30:00Z",
            "nameLegal": "string",
            "operatingStatus": "string",
            "publicId": "eV1StGXR8Z5a",
            "publicUrl": "string",
            "sitemap": {
              "hasAnalysis": true,
              "hasEmployees": true,
              "hasFundraising": true,
              "hasNews": true,
              "productServiceSlug": [
                "string"
              ],
              "hasAcquisitions": false
            },
            "updatedAt": "2024-01-15T09:30:00Z"
          },
          "enrichment": {
            "address": [
              {
                "address": 456,
                "addressLine1": "string",
                "addressLine2": "string",
                "association": [
                  {
                    "id": 123,
                    "isCurrent": true,
                    "endDate": "2023-01-15",
                    "role": "domicile",
                    "startDate": "2023-01-15"
                  }
                ],
                "city": {
                  "name": "Boston",
                  "id": 1
                },
                "country": {
                  "name": "United States",
                  "countryCodeChar2": "US",
                  "countryCodeChar3": "USA",
                  "id": 1,
                  "unRegion": "string",
                  "unSubregion": "string"
                },
                "countryAbbrev": "string",
                "createdAt": "2024-01-15T09:30:00Z",
                "fullAddress": "123 Main St, Boston, MA 02110, USA",
                "id": 123,
                "latitude": 1.1,
                "longitude": 1.1,
                "postalCode": "string",
                "state": {
                  "name": "Massachusetts",
                  "id": 1,
                  "stateAbbrev": "MA"
                },
                "stateAbbrev": "string",
                "street": "string",
                "updatedAt": "2024-01-15T09:30:00Z",
                "isCurrent": true,
                "isHq": true,
                "isPrimary": true
              }
            ],
            "classification": {
              "geoLocationExposure": [
                {
                  "name": "string",
                  "registry": "string",
                  "id": 1,
                  "type": "industry",
                  "isCurrent": true,
                  "isPrimary": true,
                  "bucket": "string",
                  "classificationId": 1,
                  "createdAt": "2024-01-15T09:30:00Z",
                  "slug": "aventure-vc",
                  "updatedAt": "2024-01-15T09:30:00Z"
                }
              ],
              "industry": [
                {
                  "name": "string",
                  "registry": "string",
                  "id": 1,
                  "type": "industry",
                  "isCurrent": true,
                  "isPrimary": true,
                  "bucket": "string",
                  "classificationId": 1,
                  "createdAt": "2024-01-15T09:30:00Z",
                  "slug": "aventure-vc",
                  "updatedAt": "2024-01-15T09:30:00Z"
                }
              ],
              "mainProduct": [
                {
                  "name": "string",
                  "registry": "string",
                  "id": 1,
                  "type": "industry",
                  "isCurrent": true,
                  "isPrimary": true,
                  "bucket": "string",
                  "classificationId": 1,
                  "createdAt": "2024-01-15T09:30:00Z",
                  "slug": "aventure-vc",
                  "updatedAt": "2024-01-15T09:30:00Z"
                }
              ],
              "standardizedClassification": [
                {
                  "category": "string",
                  "id": 1,
                  "name": "string",
                  "registry": "string",
                  "classificationId": 1,
                  "code": 1,
                  "createdAt": "2024-01-15T09:30:00Z",
                  "isCurrent": true,
                  "isPrimary": true,
                  "level": 1,
                  "updatedAt": "2024-01-15T09:30:00Z"
                }
              ],
              "tag": [
                {
                  "name": "string",
                  "registry": "string",
                  "id": 1,
                  "type": "industry",
                  "isCurrent": true,
                  "isPrimary": true,
                  "bucket": "string",
                  "classificationId": 1,
                  "createdAt": "2024-01-15T09:30:00Z",
                  "slug": "aventure-vc",
                  "updatedAt": "2024-01-15T09:30:00Z"
                }
              ],
              "typeCustomer": [
                {
                  "name": "string",
                  "registry": "string",
                  "id": 1,
                  "type": "industry",
                  "isCurrent": true,
                  "isPrimary": true,
                  "bucket": "string",
                  "classificationId": 1,
                  "createdAt": "2024-01-15T09:30:00Z",
                  "slug": "aventure-vc",
                  "updatedAt": "2024-01-15T09:30:00Z"
                }
              ],
              "typeModel": [
                {
                  "name": "string",
                  "registry": "string",
                  "id": 1,
                  "type": "industry",
                  "isCurrent": true,
                  "isPrimary": true,
                  "bucket": "string",
                  "classificationId": 1,
                  "createdAt": "2024-01-15T09:30:00Z",
                  "slug": "aventure-vc",
                  "updatedAt": "2024-01-15T09:30:00Z"
                }
              ],
              "typeOwnership": [
                {
                  "name": "string",
                  "registry": "string",
                  "id": 1,
                  "type": "industry",
                  "isCurrent": true,
                  "isPrimary": true,
                  "bucket": "string",
                  "classificationId": 1,
                  "createdAt": "2024-01-15T09:30:00Z",
                  "slug": "aventure-vc",
                  "updatedAt": "2024-01-15T09:30:00Z"
                }
              ],
              "typeRevenue": [
                {
                  "name": "string",
                  "registry": "string",
                  "id": 1,
                  "type": "industry",
                  "isCurrent": true,
                  "isPrimary": true,
                  "bucket": "string",
                  "classificationId": 1,
                  "createdAt": "2024-01-15T09:30:00Z",
                  "slug": "aventure-vc",
                  "updatedAt": "2024-01-15T09:30:00Z"
                }
              ],
              "typeTechnologyUsed": [
                {
                  "name": "string",
                  "registry": "string",
                  "id": 1,
                  "type": "industry",
                  "isCurrent": true,
                  "isPrimary": true,
                  "bucket": "string",
                  "classificationId": 1,
                  "createdAt": "2024-01-15T09:30:00Z",
                  "slug": "aventure-vc",
                  "updatedAt": "2024-01-15T09:30:00Z"
                }
              ]
            },
            "text": {
              "expanded": "Canonical expanded summary for grouped text assertions.",
              "generatedDescription": "Acme AI builds AI copilots for growth teams.",
              "short": "Canonical short summary"
            },
            "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"
              }
            ],
            "fundingDetail": {
              "fundingRoundCount": 1,
              "investorCount": 1,
              "totalRaised": 1.1,
              "unconvertedRoundCount": 1,
              "currency": "string",
              "latestValuation": 1.1,
              "mostRecentAmount": 1.1,
              "mostRecentDate": "2023-01-15",
              "stage": "string",
              "totalRaisedUsd": 1.1
            },
            "headquartersAddressId": 123,
            "headquartersRemoteAsOf": "2026-10-01T00:00:00Z"
          },
          "fundraiseRound": [
            {
              "id": "string",
              "sourceAttribution": [
                {
                  "attributionType": "direct",
                  "joinId": "string",
                  "leadInvestor": true,
                  "transactionId": "string",
                  "amountInvested": 1.1,
                  "beneficialEntityId": "string",
                  "fundManagerRelationshipId": 1,
                  "recordedEntityId": "string",
                  "round": {
                    "round": "string"
                  }
                }
              ],
              "amountRaised": 1,
              "createdAt": "2024-01-15T09:30:00Z",
              "currency": "string",
              "dataConfidence": "High",
              "dateAnnounced": "string",
              "dateFundingComplete": "string",
              "dateInvestorExit": "2024-01-15T09:30:00Z",
              "entity": {
                "core": {
                  "id": "string",
                  "image": {
                    "isMonogram": true,
                    "logo": "string",
                    "logoSquare": "string",
                    "logoSquareVariant": [
                      {
                        "contentType": "string",
                        "height": 1,
                        "path": "string",
                        "width": 1
                      }
                    ],
                    "logoVariant": [
                      {
                        "contentType": "string",
                        "height": 1,
                        "path": "string",
                        "width": 1
                      }
                    ]
                  },
                  "nameAlias": [
                    {
                      "name": "Bun",
                      "displayable": true,
                      "type": "alternativeDba"
                    }
                  ],
                  "nameBrand": "string",
                  "slug": "aventure-vc",
                  "typeRecord": "Company",
                  "defaultCurrency": "string",
                  "foundedYear": 1,
                  "lastModifiedAt": "2024-01-15T09:30:00Z",
                  "nameLegal": "string",
                  "operatingStatus": "string",
                  "publicId": "eV1StGXR8Z5a",
                  "publicUrl": "string",
                  "sitemap": {
                    "hasAnalysis": true,
                    "hasEmployees": true,
                    "hasFundraising": true,
                    "hasNews": true,
                    "productServiceSlug": [
                      "string"
                    ],
                    "hasAcquisitions": false
                  },
                  "updatedAt": "2024-01-15T09:30:00Z"
                },
                "fundingDetail": {
                  "fundingRoundCount": 1,
                  "investorCount": 1,
                  "totalRaised": 1.1,
                  "unconvertedRoundCount": 1,
                  "currency": "string",
                  "latestValuation": 1.1,
                  "mostRecentAmount": 1.1,
                  "mostRecentDate": "2023-01-15",
                  "stage": "string",
                  "totalRaisedUsd": 1.1
                }
              },
              "financialInstrumentType": "SAFE",
              "investor": [
                {
                  "createdAt": "2024-01-15T09:30:00Z",
                  "id": "string",
                  "investor": {
                    "entityId": "string",
                    "personId": "string"
                  },
                  "leadInvestor": true,
                  "transactionId": "string",
                  "updatedAt": "2024-01-15T09:30:00Z",
                  "amountInvested": 1.1,
                  "financialInstrumentType": "SAFE",
                  "investorName": "string",
                  "investorSlug": "aventure-vc"
                }
              ],
              "investorAttribution": {
                "attributionType": "direct",
                "joinId": "string",
                "leadInvestor": true,
                "transactionId": "string",
                "amountInvested": 1.1,
                "beneficialEntityId": "string",
                "fundManagerRelationshipId": 1,
                "recordedEntityId": "string",
                "round": {
                  "round": "string"
                }
              },
              "investorCount": 1,
              "publicSource": {
                "recordedAt": "2024-01-15T09:30:00Z",
                "sourceDetail": "string",
                "lastFetchedAt": "2024-01-15T09:30:00Z",
                "publishedAt": "2024-01-15T09:30:00Z"
              },
              "round": "string",
              "roundType": "string",
              "updatedAt": "2024-01-15T09:30:00Z",
              "valuationPostMoney": 1,
              "valuationPreMoney": 1
            }
          ],
          "research": {
            "acceleratorParticipation": [
              {
                "accelerator": {
                  "id": "string",
                  "image": {
                    "isMonogram": true,
                    "logo": "string",
                    "logoSquare": "string",
                    "logoSquareVariant": [
                      {
                        "contentType": "string",
                        "height": 1,
                        "path": "string",
                        "width": 1
                      }
                    ],
                    "logoVariant": [
                      {
                        "contentType": "string",
                        "height": 1,
                        "path": "string",
                        "width": 1
                      }
                    ]
                  },
                  "nameAlias": [
                    {
                      "name": "Bun",
                      "displayable": true,
                      "type": "alternativeDba"
                    }
                  ],
                  "nameBrand": "string",
                  "slug": "aventure-vc",
                  "typeRecord": "Company",
                  "defaultCurrency": "string",
                  "foundedYear": 1,
                  "lastModifiedAt": "2024-01-15T09:30:00Z",
                  "nameLegal": "string",
                  "operatingStatus": "string",
                  "publicId": "eV1StGXR8Z5a",
                  "publicUrl": "string",
                  "sitemap": {
                    "hasAnalysis": true,
                    "hasEmployees": true,
                    "hasFundraising": true,
                    "hasNews": true,
                    "productServiceSlug": [
                      "string"
                    ],
                    "hasAcquisitions": false
                  },
                  "updatedAt": "2024-01-15T09:30:00Z"
                },
                "acceleratorName": "string",
                "asOfDate": "string",
                "id": "string",
                "batch": "string",
                "program": "string",
                "status": "string"
              }
            ],
            "detail": [
              {
                "entityId": "string",
                "id": 1,
                "typeResearchDetail": "string",
                "valueType": "text",
                "asOfDate": "string",
                "currentEligible": true,
                "derivedRange": {
                  "asOfDate": "string",
                  "bucket": "pastDue",
                  "monthsFromNow": 1,
                  "targetDate": "2024-01-15T09:30:00Z"
                },
                "discreteValue": 1.1,
                "publicSource": {
                  "recordedAt": "2024-01-15T09:30:00Z",
                  "sourceDetail": "string",
                  "lastFetchedAt": "2024-01-15T09:30:00Z",
                  "publishedAt": "2024-01-15T09:30:00Z"
                },
                "textValue": "string",
                "updatedAt": "2024-01-15T09:30:00Z",
                "valueResearchDetail": "string"
              }
            ]
          },
          "profileStatus": {
            "headline": "string",
            "isAcquired": true,
            "isClosed": true,
            "isTerminal": true
          },
          "provider": {
            "entity": {
              "id": "string",
              "image": {
                "isMonogram": true,
                "logo": "string",
                "logoSquare": "string",
                "logoSquareVariant": [
                  {
                    "contentType": "string",
                    "height": 1,
                    "path": "string",
                    "width": 1
                  }
                ],
                "logoVariant": [
                  {
                    "contentType": "string",
                    "height": 1,
                    "path": "string",
                    "width": 1
                  }
                ]
              },
              "nameAlias": [
                {
                  "name": "Bun",
                  "displayable": true,
                  "type": "alternativeDba"
                }
              ],
              "nameBrand": "string",
              "slug": "aventure-vc",
              "typeRecord": "Company",
              "defaultCurrency": "string",
              "foundedYear": 1,
              "lastModifiedAt": "2024-01-15T09:30:00Z",
              "nameLegal": "string",
              "operatingStatus": "string",
              "publicId": "eV1StGXR8Z5a",
              "publicUrl": "string",
              "sitemap": {
                "hasAnalysis": true,
                "hasEmployees": true,
                "hasFundraising": true,
                "hasNews": true,
                "productServiceSlug": [
                  "string"
                ],
                "hasAcquisitions": false
              },
              "updatedAt": "2024-01-15T09:30:00Z"
            },
            "relationshipType": "fundManagerFirm",
            "headquarters": {
              "address": 456,
              "addressLine1": "string",
              "addressLine2": "string",
              "association": [
                {
                  "id": 123,
                  "isCurrent": true,
                  "endDate": "2023-01-15",
                  "role": "domicile",
                  "startDate": "2023-01-15"
                }
              ],
              "city": {
                "name": "Boston",
                "id": 1
              },
              "country": {
                "name": "United States",
                "countryCodeChar2": "US",
                "countryCodeChar3": "USA",
                "id": 1,
                "unRegion": "string",
                "unSubregion": "string"
              },
              "countryAbbrev": "string",
              "createdAt": "2024-01-15T09:30:00Z",
              "fullAddress": "123 Main St, Boston, MA 02110, USA",
              "id": 123,
              "latitude": 1.1,
              "longitude": 1.1,
              "postalCode": "string",
              "state": {
                "name": "Massachusetts",
                "id": 1,
                "stateAbbrev": "MA"
              },
              "stateAbbrev": "string",
              "street": "string",
              "updatedAt": "2024-01-15T09:30:00Z",
              "isCurrent": true,
              "isHq": true,
              "isPrimary": true
            }
          },
          "semanticMatch": {
            "computedAt": "2024-01-15T09:30:00Z",
            "cosineDistance": 1.1,
            "cosineScore": 1.1,
            "modelVersion": "string",
            "rank": 1,
            "sourceHash": "string",
            "sourceId": "string",
            "sourceType": "string"
          }
        }
      ],
      "mentionType": "COMPANY",
      "name": "string",
      "person": [
        {
          "id": "string",
          "image": {
            "isMonogram": true,
            "picture": "string",
            "pictureVariant": [
              {
                "contentType": "string",
                "height": 1,
                "path": "string",
                "width": 1
              }
            ]
          },
          "nameAlias": [
            {
              "name": "Bun",
              "displayable": true,
              "type": "nickname"
            }
          ],
          "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"
          },
          "bioUpdatedAt": "2024-01-15T09:30:00Z",
          "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"
        }
      ],
      "enrichmentRunId": "string",
      "failureReason": "string",
      "identification": {
        "candidate": [
          {
            "owner": {
              "entityId": "string",
              "personId": "string"
            },
            "record": {
              "id": "string",
              "reason": [
                "string"
              ],
              "externalId": "string",
              "name": "string",
              "operatingStatus": "string",
              "publicPath": "string",
              "score": 1,
              "slug": "aventure-vc",
              "typeRecord": "Company"
            },
            "createdAt": "2024-01-15T09:30:00Z",
            "dataCompletionCoverage": 1,
            "domainAgreement": "MATCH",
            "duplicateBasis": "STUB",
            "duplicateProbability": 1.1,
            "foundedYear": 1,
            "probability": 1.1,
            "updatedAt": "2024-01-15T09:30:00Z",
            "website": "string"
          }
        ],
        "detail": "string",
        "duplicate": [
          {
            "owner": {
              "entityId": "string",
              "personId": "string"
            },
            "record": {
              "id": "string",
              "reason": [
                "string"
              ],
              "externalId": "string",
              "name": "string",
              "operatingStatus": "string",
              "publicPath": "string",
              "score": 1,
              "slug": "aventure-vc",
              "typeRecord": "Company"
            },
            "createdAt": "2024-01-15T09:30:00Z",
            "dataCompletionCoverage": 1,
            "domainAgreement": "MATCH",
            "duplicateBasis": "STUB",
            "duplicateProbability": 1.1,
            "foundedYear": 1,
            "probability": 1.1,
            "updatedAt": "2024-01-15T09:30:00Z",
            "website": "string"
          }
        ],
        "status": "MATCHED",
        "urlHostForm": [
          {
            "concluded": true,
            "submittedUrl": "string",
            "url": "string",
            "crawlCdnProvider": "cloudflare",
            "crawlRenderMode": "static",
            "landingHost": "string",
            "outcome": "success",
            "status": "string"
          }
        ],
        "acceptedOwner": {
          "entityId": "string",
          "personId": "string"
        },
        "created": {
          "owner": {
            "entityId": "string",
            "personId": "string"
          },
          "record": {
            "id": "string",
            "reason": [
              "string"
            ],
            "externalId": "string",
            "name": "string",
            "operatingStatus": "string",
            "publicPath": "string",
            "score": 1,
            "slug": "aventure-vc",
            "typeRecord": "Company"
          },
          "createdAt": "2024-01-15T09:30:00Z",
          "dataCompletionCoverage": 1,
          "domainAgreement": "MATCH",
          "duplicateBasis": "STUB",
          "duplicateProbability": 1.1,
          "foundedYear": 1,
          "probability": 1.1,
          "updatedAt": "2024-01-15T09:30:00Z",
          "website": "string"
        },
        "enrichmentRunId": "string",
        "filing": {
          "jobId": "string",
          "mode": "string",
          "statusUrl": "/v1/jobs/runs/550e8400-e29b-41d4-a716-446655440000",
          "deduped": true
        },
        "inserted": true,
        "languageModelSettled": true,
        "match": {
          "owner": {
            "entityId": "string",
            "personId": "string"
          },
          "record": {
            "id": "string",
            "reason": [
              "string"
            ],
            "externalId": "string",
            "name": "string",
            "operatingStatus": "string",
            "publicPath": "string",
            "score": 1,
            "slug": "aventure-vc",
            "typeRecord": "Company"
          },
          "createdAt": "2024-01-15T09:30:00Z",
          "dataCompletionCoverage": 1,
          "domainAgreement": "MATCH",
          "duplicateBasis": "STUB",
          "duplicateProbability": 1.1,
          "foundedYear": 1,
          "probability": 1.1,
          "updatedAt": "2024-01-15T09:30:00Z",
          "website": "string"
        },
        "officialUrl": "string"
      },
      "shell": {
        "entityId": "string",
        "personId": "string"
      },
      "shellDetail": "string"
    }
  ],
  "filing": {
    "jobId": "string",
    "mode": "string",
    "statusUrl": "/v1/jobs/runs/550e8400-e29b-41d4-a716-446655440000",
    "deduped": true
  },
  "truncated": true
}
```

**SDK Code**

```python
import requests

url = "https://api.aventure.vc/v1/lookup-mentions"

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/lookup-mentions';
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/lookup-mentions"

	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/lookup-mentions")

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/lookup-mentions")
  .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/lookup-mentions', [
  'body' => '{}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
  ],
]);

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

```csharp
using RestSharp;

var client = new RestClient("https://api.aventure.vc/v1/lookup-mentions");
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/lookup-mentions")! 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()
```