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

# Replace entity detail

PUT https://api.aventure.vc/v1/entities/detail
Content-Type: application/json

Replace entity detail fields by id or slug. Use entities update for partial merge-patch edits. For single-slug entity routes, when typeRecord changes the public route prefix, the actual prior public path for the unchanged slug automatically redirects to the new canonical public path and existing upstream redirect chains are retargeted. When setting Product or Service without a current provider join, set productServiceProviderId so the productService relationship is written atomically. The entity must already have current primary summary and expanded text rows. Requires write authority.

Reference: https://docs.aventure.vc/api-reference/a-venture-api/entity-maintenance/update-entity-detail

## Authentication

- `Authorization` header (bearer token, required) — User bearer token: Supabase or Clerk session JWT, Clerk OAuth access token, or Clerk personal API key
- `X-API-Key` header (required) — Admin API key for system-to-system write operations

## Request

### Query parameters

- `id` (string, optional) — Owner-scoped resource UUID selector.
- `slug` (string, optional) — Owner-scoped resource slug selector.
- `sourceType` (enum, required) — Write provenance source type.
  - Allowed values: `requestChangeForm`, `newsArticle`, `blogArticle`, `firstPartyWebsite`, `relatedPartyWebsite`, `thirdPartyWebsite`, `llm`, `aventureStaff`
- `sourceDetail` (string, required) — Source detail or reviewer reference for the write.
- `sourceProvider` (string, optional) — Provider name for provider-native IDs or slugs.
- `sourceProviderId` (string, optional) — Provider-native source ID.
- `sourceProviderSlug` (string, optional) — Provider-native source slug.
- `actorType` (enum, optional) — Actor type; inferred as agent when agentChassis and agentModel are supplied, or as employee from an authenticated user JWT session.
  - Allowed values: `agent`, `employee`
- `agentChassis` (string, optional) — Agent chassis token for agent-authored writes.
- `agentModel` (string, optional) — Agent model id for agent-authored writes.
- `overrideGate` (enum, optional) — Gate to override from the prior ProblemDetail resolution.
  - Allowed values: `duplicate`, `entity-publication-requirements`, `square-logo-deletion`, `current-classification-removal`, `news-thumbnail-required`, `news-article-url-fetch`, `news-dated-slug`, `brand-match`, `type-structure-contradiction`
- `overrideReason` (string, optional) — Source-backed reason for overriding the returned gate requirement.
- `permitMonogram` (boolean, optional) — Allow generated monogram logo fallback.
- `productServiceProviderId` (string, optional) — Existing provider entity UUID required when this replacement sets typeRecord to Product or Service and the row has no current productService provider join.

### Body (application/json)

- `allowSuspectedShellStrip` (boolean, optional, nullable) — Allow intentional money-like text without a currency marker; prefer --from-file.
- `defaultCurrency` (string, optional, nullable) — Default operating currency.
- `foundedYear` (integer, optional, nullable) — Year founded.
- `nameAlias` (list of object, optional, nullable) — Alternative or former names used for search and display. When supplied, the list replaces existing aliases.
  - `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`
- `nameBrand` (string, optional, nullable) — Brand name. For Product or Service records, this must name a distinct offering and must not exactly match the joined provider entity. If an eponymous offering has no distinct product-line brand, use a descriptor/category such as Consumer Sedans or Light Industrial Vehicles instead.
- `nameLegal` (string, optional, nullable) — Legal name.
- `newSlug` (string, optional, nullable) — Preferred detail-update slug rename field. Omit on create; when slug is also sent both fields must normalize to the same value.
- `operatingStatus` (enum, optional, nullable) — Operating status. Required on create; omitted update values preserve existing status. Use Acquired Subsidiary when an acquired entity still operates; use Acquired only when it is terminal, folded, or closed. Closed and terminal Acquired keep attached person joins current; update association endDate separately with a closing-date estimate.
  - Allowed values: `Operating`, `Acquired`, `Acquired Subsidiary`, `Closed`, `Inactive`
- `slug` (string, optional, nullable) — Entity URL slug. Create may omit it when the server can derive one; detail updates may rename through this field or newSlug. Company-class slugs are one shared namespace and must end with the HQ location suffix (brand-city-state-country); a held slug returns 409. Product and Service slugs derive from nameBrand, stay scoped to the provider pair, and may repeat across providers; reusing a slug under the same provider or one held by a non-product entity returns 409.
- `status` (object, optional, nullable) — Visibility and verification flags; omitted update fields preserve existing values.
  - `isFeatured` (boolean, optional, nullable) — Set whether this entity is editorially featured
  - `isHidden` (boolean, optional, nullable) — Set whether this entity is hidden from public list and detail views. Create default is true when omitted.
  - `isVerified` (boolean, optional, nullable) — Set whether this entity has passed editorial verification
  - `showOnSitemap` (boolean, optional, nullable) — Set whether this entity is included in the public sitemap. Create default is false when omitted.
- `typeRecord` (string, optional, nullable) — Concrete entity type such as Company, Investment Firm, Product, or Service. Product and Service records always pair with a current productService provider relationship: creates write the join atomically via productServiceProviderId, the sole provider join cannot be removed or re-pointed, and moving an offering to a different provider means delete and recreate.

## Response

### 200

OK

- `core` (object, required) — Core entity identity, naming, status, image, and source metadata.
  - `id` (string, required) — Unique entity identifier
  - `image` (object, required) — Logo and monogram image metadata
    - `isMonogram` (boolean, required) — Whether entity image monogram
    - `logo` (string, optional, nullable)
    - `logoSquare` (string, optional, nullable)
  - `nameAlias` (list of object, 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.
    - `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`
  - `nameBrand` (string, required) — Resolved display brand name
  - `slug` (string, required) — URL-safe identifier
  - `createdAt` (datetime, optional, nullable) — Record creation timestamp
  - `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 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` (object, optional, nullable) — Sub-route eligibility, populated by the sitemap projection. Null on non-sitemap reads to keep thin payloads compact.
    - `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.
  - `typeRecord` (enum, optional, nullable) — Entity type classification
    - Allowed values: `Company`, `Investment Firm`, `Fund`, `Nonprofit`, `Government`, `Organization`, `Business Line`, `Product`, `Service`
  - `updatedAt` (datetime, optional, nullable) — Last modification timestamp
- `enrichment` (object, required) — Entity enrichment: addresses, classification, funding summary, text, and URL links.
  - `address` (list of object, required)
    - `address` (integer, optional, nullable) — Legacy address row identifier
    - `addressLine1` (string, optional, nullable)
    - `addressLine2` (string, optional, nullable)
    - `association` (list of object, optional) — Role-period associations for this physical address
      - `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
    - `city` (object, optional, nullable) — City reference
      - `name` (string, required) — City name
      - `id` (integer, optional, nullable)
    - `country` (object, optional, nullable) — Country reference
      - `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)
    - `countryAbbrev` (string, optional, nullable)
    - `createdAt` (datetime, optional, nullable)
    - `fullAddress` (string, optional, nullable) — Single-line formatted address
    - `id` (integer, optional, nullable) — Address record identifier
    - `latitude` (double, optional, nullable)
    - `longitude` (double, optional, nullable)
    - `postalCode` (string, optional, nullable)
    - `state` (object, optional, nullable) — State or region reference
      - `name` (string, required) — State or region name
      - `id` (integer, optional, nullable)
      - `stateAbbrev` (string, optional, nullable) — State or region abbreviation
    - `stateAbbrev` (string, optional, nullable)
    - `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 headquarters or legal/registered address
    - `isPrimary` (boolean, optional, nullable, deprecated) — Deprecated legacy flag marking the primary display address
  - `classification` (object, required) — Entity classification join projection for this read surface. Single-detail and full-detail batch reads include full history; list, default batch, and similar-entity reads may filter to current joins. Use GET /v1/entities/\{entityId}/classifications?includeInactive=true for authoritative join history.
    - `geoLocationExposure` (list of object, 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.
      - `creatable` (boolean, required)
      - `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.
      - `writable` (boolean, required)
      - `creatable` (boolean, required) — Whether this bucket permits creating missing values by type plus name.
      - `id` (integer, required) — Classification tag registry id from res_type_ref; use as EntityClassificationMutation.tagId.
      - `name` (string, required) — Name
      - `type` (string, required) — Canonical tag classification type
      - `writable` (boolean, required) — Whether this existing tag can be joined through tagId.
      - `isCurrent` (boolean, optional, nullable)
      - `isPrimary` (boolean, optional, nullable)
      - `bucket` (string, optional, nullable) — Canonical entity-classification bucket key. Use this as EntityClassificationMutation.type when creating by type plus name; `type` remains the registry wire value for tag search and catalog round-trips.
      - `classificationId` (integer, optional, nullable) — Entity classification join row id for update/delete; present on entity classification responses and null on discovery responses.
      - `createdAt` (datetime, optional, nullable) — Registry tag creation timestamp, not the entity join timestamp.
      - `isCurrent` (boolean, optional, nullable) — Current-state flag for this context: registry active flag in discovery, entity join current flag in entity-classification responses.
      - `isPrimary` (boolean, optional, nullable) — Entity join primary flag within its bucket; null on catalog/tag discovery.
      - `slug` (string, optional, nullable) — Slug
      - `updatedAt` (datetime, optional, nullable) — Registry tag update timestamp; join updates return isCurrent/isPrimary but no join updatedAt.
    - `industry` (list of object, optional, default: []) — Industry filter values
      - `creatable` (boolean, required)
      - `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.
      - `writable` (boolean, required)
      - `creatable` (boolean, required) — Whether this bucket permits creating missing values by type plus name.
      - `id` (integer, required) — Classification tag registry id from res_type_ref; use as EntityClassificationMutation.tagId.
      - `name` (string, required) — Name
      - `type` (string, required) — Canonical tag classification type
      - `writable` (boolean, required) — Whether this existing tag can be joined through tagId.
      - `isCurrent` (boolean, optional, nullable)
      - `isPrimary` (boolean, optional, nullable)
      - `bucket` (string, optional, nullable) — Canonical entity-classification bucket key. Use this as EntityClassificationMutation.type when creating by type plus name; `type` remains the registry wire value for tag search and catalog round-trips.
      - `classificationId` (integer, optional, nullable) — Entity classification join row id for update/delete; present on entity classification responses and null on discovery responses.
      - `createdAt` (datetime, optional, nullable) — Registry tag creation timestamp, not the entity join timestamp.
      - `isCurrent` (boolean, optional, nullable) — Current-state flag for this context: registry active flag in discovery, entity join current flag in entity-classification responses.
      - `isPrimary` (boolean, optional, nullable) — Entity join primary flag within its bucket; null on catalog/tag discovery.
      - `slug` (string, optional, nullable) — Slug
      - `updatedAt` (datetime, optional, nullable) — Registry tag update timestamp; join updates return isCurrent/isPrimary but no join updatedAt.
    - `mainProduct` (list of object, optional, default: []) — Main product filter values
      - `creatable` (boolean, required)
      - `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.
      - `writable` (boolean, required)
      - `creatable` (boolean, required) — Whether this bucket permits creating missing values by type plus name.
      - `id` (integer, required) — Classification tag registry id from res_type_ref; use as EntityClassificationMutation.tagId.
      - `name` (string, required) — Name
      - `type` (string, required) — Canonical tag classification type
      - `writable` (boolean, required) — Whether this existing tag can be joined through tagId.
      - `isCurrent` (boolean, optional, nullable)
      - `isPrimary` (boolean, optional, nullable)
      - `bucket` (string, optional, nullable) — Canonical entity-classification bucket key. Use this as EntityClassificationMutation.type when creating by type plus name; `type` remains the registry wire value for tag search and catalog round-trips.
      - `classificationId` (integer, optional, nullable) — Entity classification join row id for update/delete; present on entity classification responses and null on discovery responses.
      - `createdAt` (datetime, optional, nullable) — Registry tag creation timestamp, not the entity join timestamp.
      - `isCurrent` (boolean, optional, nullable) — Current-state flag for this context: registry active flag in discovery, entity join current flag in entity-classification responses.
      - `isPrimary` (boolean, optional, nullable) — Entity join primary flag within its bucket; null on catalog/tag discovery.
      - `slug` (string, optional, nullable) — Slug
      - `updatedAt` (datetime, optional, nullable) — Registry tag update timestamp; join updates return isCurrent/isPrimary but no join updatedAt.
    - `standardizedClassification` (list of object, optional, default: []) — Standardized classification joins from res_classification_ref. Rows are join-existing-only and carry category/code metadata.
      - `creatable` (boolean, required)
      - `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.
      - `writable` (boolean, required)
      - `category` (string, required) — Standardized category token.
      - `creatable` (boolean, required) — Standardized taxonomy rows are join-existing-only.
      - `id` (integer, required) — Standardized classification registry id from res_classification_ref; use as EntityClassificationMutation.classificationId.
      - `name` (string, required) — Name
      - `writable` (boolean, required) — Existing standardized rows can be joined through classificationId.
      - `isCurrent` (boolean, optional, nullable)
      - `isPrimary` (boolean, optional, nullable)
      - `code` (integer, optional, nullable) — Standardized classification code when present.
      - `createdAt` (datetime, optional, nullable) — Registry row creation timestamp.
      - `entityClassificationId` (integer, optional, nullable) — Entity classification join row id for update/delete; present on entity classification responses and null on discovery responses.
      - `isCurrent` (boolean, optional, nullable) — Standardized reference rows are current by definition.
      - `isPrimary` (boolean, optional, nullable) — Entity join primary flag within this standardized category.
      - `level` (integer, optional, nullable) — Hierarchy level when present.
      - `updatedAt` (datetime, optional, nullable) — Registry row update timestamp.
    - `tag` (list of object, optional, default: []) — Tag filter values
      - `creatable` (boolean, required)
      - `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.
      - `writable` (boolean, required)
      - `creatable` (boolean, required) — Whether this bucket permits creating missing values by type plus name.
      - `id` (integer, required) — Classification tag registry id from res_type_ref; use as EntityClassificationMutation.tagId.
      - `name` (string, required) — Name
      - `type` (string, required) — Canonical tag classification type
      - `writable` (boolean, required) — Whether this existing tag can be joined through tagId.
      - `isCurrent` (boolean, optional, nullable)
      - `isPrimary` (boolean, optional, nullable)
      - `bucket` (string, optional, nullable) — Canonical entity-classification bucket key. Use this as EntityClassificationMutation.type when creating by type plus name; `type` remains the registry wire value for tag search and catalog round-trips.
      - `classificationId` (integer, optional, nullable) — Entity classification join row id for update/delete; present on entity classification responses and null on discovery responses.
      - `createdAt` (datetime, optional, nullable) — Registry tag creation timestamp, not the entity join timestamp.
      - `isCurrent` (boolean, optional, nullable) — Current-state flag for this context: registry active flag in discovery, entity join current flag in entity-classification responses.
      - `isPrimary` (boolean, optional, nullable) — Entity join primary flag within its bucket; null on catalog/tag discovery.
      - `slug` (string, optional, nullable) — Slug
      - `updatedAt` (datetime, optional, nullable) — Registry tag update timestamp; join updates return isCurrent/isPrimary but no join updatedAt.
    - `typeCustomer` (list of object, optional, default: []) — Type customer filter values
      - `creatable` (boolean, required)
      - `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.
      - `writable` (boolean, required)
      - `creatable` (boolean, required) — Whether this bucket permits creating missing values by type plus name.
      - `id` (integer, required) — Classification tag registry id from res_type_ref; use as EntityClassificationMutation.tagId.
      - `name` (string, required) — Name
      - `type` (string, required) — Canonical tag classification type
      - `writable` (boolean, required) — Whether this existing tag can be joined through tagId.
      - `isCurrent` (boolean, optional, nullable)
      - `isPrimary` (boolean, optional, nullable)
      - `bucket` (string, optional, nullable) — Canonical entity-classification bucket key. Use this as EntityClassificationMutation.type when creating by type plus name; `type` remains the registry wire value for tag search and catalog round-trips.
      - `classificationId` (integer, optional, nullable) — Entity classification join row id for update/delete; present on entity classification responses and null on discovery responses.
      - `createdAt` (datetime, optional, nullable) — Registry tag creation timestamp, not the entity join timestamp.
      - `isCurrent` (boolean, optional, nullable) — Current-state flag for this context: registry active flag in discovery, entity join current flag in entity-classification responses.
      - `isPrimary` (boolean, optional, nullable) — Entity join primary flag within its bucket; null on catalog/tag discovery.
      - `slug` (string, optional, nullable) — Slug
      - `updatedAt` (datetime, optional, nullable) — Registry tag update timestamp; join updates return isCurrent/isPrimary but no join updatedAt.
    - `typeModel` (list of object, optional, default: []) — Type model filter values
      - `creatable` (boolean, required)
      - `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.
      - `writable` (boolean, required)
      - `creatable` (boolean, required) — Whether this bucket permits creating missing values by type plus name.
      - `id` (integer, required) — Classification tag registry id from res_type_ref; use as EntityClassificationMutation.tagId.
      - `name` (string, required) — Name
      - `type` (string, required) — Canonical tag classification type
      - `writable` (boolean, required) — Whether this existing tag can be joined through tagId.
      - `isCurrent` (boolean, optional, nullable)
      - `isPrimary` (boolean, optional, nullable)
      - `bucket` (string, optional, nullable) — Canonical entity-classification bucket key. Use this as EntityClassificationMutation.type when creating by type plus name; `type` remains the registry wire value for tag search and catalog round-trips.
      - `classificationId` (integer, optional, nullable) — Entity classification join row id for update/delete; present on entity classification responses and null on discovery responses.
      - `createdAt` (datetime, optional, nullable) — Registry tag creation timestamp, not the entity join timestamp.
      - `isCurrent` (boolean, optional, nullable) — Current-state flag for this context: registry active flag in discovery, entity join current flag in entity-classification responses.
      - `isPrimary` (boolean, optional, nullable) — Entity join primary flag within its bucket; null on catalog/tag discovery.
      - `slug` (string, optional, nullable) — Slug
      - `updatedAt` (datetime, optional, nullable) — Registry tag update timestamp; join updates return isCurrent/isPrimary but no join updatedAt.
    - `typeOwnership` (list of object, optional, default: []) — Type ownership filter values
      - `creatable` (boolean, required)
      - `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.
      - `writable` (boolean, required)
      - `creatable` (boolean, required) — Whether this bucket permits creating missing values by type plus name.
      - `id` (integer, required) — Classification tag registry id from res_type_ref; use as EntityClassificationMutation.tagId.
      - `name` (string, required) — Name
      - `type` (string, required) — Canonical tag classification type
      - `writable` (boolean, required) — Whether this existing tag can be joined through tagId.
      - `isCurrent` (boolean, optional, nullable)
      - `isPrimary` (boolean, optional, nullable)
      - `bucket` (string, optional, nullable) — Canonical entity-classification bucket key. Use this as EntityClassificationMutation.type when creating by type plus name; `type` remains the registry wire value for tag search and catalog round-trips.
      - `classificationId` (integer, optional, nullable) — Entity classification join row id for update/delete; present on entity classification responses and null on discovery responses.
      - `createdAt` (datetime, optional, nullable) — Registry tag creation timestamp, not the entity join timestamp.
      - `isCurrent` (boolean, optional, nullable) — Current-state flag for this context: registry active flag in discovery, entity join current flag in entity-classification responses.
      - `isPrimary` (boolean, optional, nullable) — Entity join primary flag within its bucket; null on catalog/tag discovery.
      - `slug` (string, optional, nullable) — Slug
      - `updatedAt` (datetime, optional, nullable) — Registry tag update timestamp; join updates return isCurrent/isPrimary but no join updatedAt.
    - `typeRevenue` (list of object, optional, default: []) — Type revenue filter values
      - `creatable` (boolean, required)
      - `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.
      - `writable` (boolean, required)
      - `creatable` (boolean, required) — Whether this bucket permits creating missing values by type plus name.
      - `id` (integer, required) — Classification tag registry id from res_type_ref; use as EntityClassificationMutation.tagId.
      - `name` (string, required) — Name
      - `type` (string, required) — Canonical tag classification type
      - `writable` (boolean, required) — Whether this existing tag can be joined through tagId.
      - `isCurrent` (boolean, optional, nullable)
      - `isPrimary` (boolean, optional, nullable)
      - `bucket` (string, optional, nullable) — Canonical entity-classification bucket key. Use this as EntityClassificationMutation.type when creating by type plus name; `type` remains the registry wire value for tag search and catalog round-trips.
      - `classificationId` (integer, optional, nullable) — Entity classification join row id for update/delete; present on entity classification responses and null on discovery responses.
      - `createdAt` (datetime, optional, nullable) — Registry tag creation timestamp, not the entity join timestamp.
      - `isCurrent` (boolean, optional, nullable) — Current-state flag for this context: registry active flag in discovery, entity join current flag in entity-classification responses.
      - `isPrimary` (boolean, optional, nullable) — Entity join primary flag within its bucket; null on catalog/tag discovery.
      - `slug` (string, optional, nullable) — Slug
      - `updatedAt` (datetime, optional, nullable) — Registry tag update timestamp; join updates return isCurrent/isPrimary but no join updatedAt.
    - `typeTechnologyUsed` (list of object, optional, default: []) — Type technology used filter values
      - `creatable` (boolean, required)
      - `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.
      - `writable` (boolean, required)
      - `creatable` (boolean, required) — Whether this bucket permits creating missing values by type plus name.
      - `id` (integer, required) — Classification tag registry id from res_type_ref; use as EntityClassificationMutation.tagId.
      - `name` (string, required) — Name
      - `type` (string, required) — Canonical tag classification type
      - `writable` (boolean, required) — Whether this existing tag can be joined through tagId.
      - `isCurrent` (boolean, optional, nullable)
      - `isPrimary` (boolean, optional, nullable)
      - `bucket` (string, optional, nullable) — Canonical entity-classification bucket key. Use this as EntityClassificationMutation.type when creating by type plus name; `type` remains the registry wire value for tag search and catalog round-trips.
      - `classificationId` (integer, optional, nullable) — Entity classification join row id for update/delete; present on entity classification responses and null on discovery responses.
      - `createdAt` (datetime, optional, nullable) — Registry tag creation timestamp, not the entity join timestamp.
      - `isCurrent` (boolean, optional, nullable) — Current-state flag for this context: registry active flag in discovery, entity join current flag in entity-classification responses.
      - `isPrimary` (boolean, optional, nullable) — Entity join primary flag within its bucket; null on catalog/tag discovery.
      - `slug` (string, optional, nullable) — Slug
      - `updatedAt` (datetime, optional, nullable) — Registry tag update timestamp; join updates return isCurrent/isPrimary but no join updatedAt.
  - `text` (object, required) — 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
  - `urlLink` (list of object, required) — URL link filter values
    - `url` (string, required) — Canonical absolute HTTP URL value - validates scheme + host at construction
    - `urlType` (enum, required) — Canonical URL platform type such as website, linkedin, twitter, or github. Lifecycle facts belong on link flags such as isCurrent and isPrimary.
      - Allowed values: `website`, `linkedin`, `twitter`, `github`, `facebook`, `instagram`, `tiktok`, `youtube`, `subreddit`, `forum`, `documentation`, `support`, `statuspage`, `changelog`, `roadmap`, `discord`, `crunchbase`, `wellfound`, `angellist`, `glassdoor`, `theorg`, `ycombinator`, `wikipedia`, `pitchbook`, `morningstar`, `bloomberg`, `nyse`, `nasdaq`, `g2`, `producthunt`, `trustpilot`, `alternativeto`, `gartnerpeerinsights`, `getapp`, `sourceforge`, `appstore`, `googleplay`, `capterra`, `trustradius`, `hubspotmarketplace`, `slackappdirectory`, `awsmarketplace`, `salesforceappexchange`, `chromewebstore`, `vscodemarketplace`, `npm`, `pypi`, `maven`, `dockerhub`, `homebrew`, `crates`
    - `crawlCdnProvider` (enum, optional, nullable) — CDN or hosting provider fronting a web URL.
      - 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) — JavaScript rendering requirement for crawl checks.
      - 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`.
    - `owner` (object, 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.
      - `entityId` (string, optional, nullable) — Canonical entity UUID
      - `personId` (string, optional, nullable) — Canonical person UUID
    - `sourceId` (string, optional, nullable)
    - `status` (string, optional, nullable)
    - `statusChecked` (datetime, optional, nullable)
    - `updatedAt` (datetime, optional, nullable)
  - `fundingDetail` (object, optional, nullable) — Aggregate view of an entity's fundraising activity
    - `fundingRoundCount` (integer, required)
    - `investorCount` (integer, required)
    - `totalRaised` (double, required)
    - `latestValuation` (double, optional, nullable)
    - `mostRecentAmount` (double, optional, nullable)
    - `mostRecentDate` (date, optional, nullable)
    - `stage` (enum, optional, nullable) — Canonical inferred equity, entity-type, or Company operating-status stage emitted by the entity fundraise rollup. Transaction classifications such as Debt, IPO, and Acquisition are not entity stages.
      - Allowed values: `Angel`, `Pre-Seed`, `Seed`, `Series A`, `Series B`, `Series C`, `Series D`, `Series E`, `Series F`, `Series G`, `Series H`, `Series I`, `Series J`, `Series K`, `Series L`, `Series M`, `Series N`, `Series O`, `Series P`, `Series Q`, `Series R`, `Series S`, `Series T`, `Series U`, `Series V`, `Series W`, `Series X`, `Series Y`, `Series Z`, `Investment Firm`, `Fund`, `Nonprofit`, `Government`, `Public`, `Acquired`, `Acquired Subsidiary`
- `fundraiseRound` (list of object, required) — Fundraise rounds associated with this entity.
  - `id` (string, required) — Canonical fundraise transaction UUID
  - `sourceAttribution` (list of object, required)
    - `attributionType` (enum, required) — How this attribution row participates in the investor view.
      - Allowed values: `direct`, `managedFund`
    - `joinId` (string, required) — Fundraise investor join identifier
    - `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. 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` (object, optional, nullable) — Round label for the attributed participation
      - `round` (string, 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` (datetime, optional, nullable)
  - `dateFundingComplete` (datetime, optional, nullable)
  - `dateInvestorExit` (datetime, optional, nullable)
  - `entity` (object, optional, nullable) — Entity projection used inside FundraiseTransaction responses
    - `core` (object, 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. Returned directly by thin-mode (?mode=thin) and alphabetical (?letter=X) list endpoints. Nested as .core inside EntityList for default list reads and EntityDetail for detail reads.
      - `id` (string, required) — Unique entity identifier
      - `image` (object, required) — Logo and monogram image metadata
        - `isMonogram` (boolean, required) — Whether entity image monogram
        - `logo` (string, optional, nullable)
        - `logoSquare` (string, optional, nullable)
      - `nameAlias` (list of object, 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.
        - `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`
      - `nameBrand` (string, required) — Resolved display brand name
      - `slug` (string, required) — URL-safe identifier
      - `createdAt` (datetime, optional, nullable) — Record creation timestamp
      - `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 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` (object, optional, nullable) — Sub-route eligibility, populated by the sitemap projection. Null on non-sitemap reads to keep thin payloads compact.
        - `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.
      - `typeRecord` (enum, optional, nullable) — Entity type classification
        - Allowed values: `Company`, `Investment Firm`, `Fund`, `Nonprofit`, `Government`, `Organization`, `Business Line`, `Product`, `Service`
      - `updatedAt` (datetime, optional, nullable) — Last modification timestamp
    - `fundingDetail` (object, optional, nullable) — Aggregate view of an entity's fundraising activity
      - `fundingRoundCount` (integer, required)
      - `investorCount` (integer, required)
      - `totalRaised` (double, required)
      - `latestValuation` (double, optional, nullable)
      - `mostRecentAmount` (double, optional, nullable)
      - `mostRecentDate` (date, optional, nullable)
      - `stage` (enum, optional, nullable) — Canonical inferred equity, entity-type, or Company operating-status stage emitted by the entity fundraise rollup. Transaction classifications such as Debt, IPO, and Acquisition are not entity stages.
        - Allowed values: `Angel`, `Pre-Seed`, `Seed`, `Series A`, `Series B`, `Series C`, `Series D`, `Series E`, `Series F`, `Series G`, `Series H`, `Series I`, `Series J`, `Series K`, `Series L`, `Series M`, `Series N`, `Series O`, `Series P`, `Series Q`, `Series R`, `Series S`, `Series T`, `Series U`, `Series V`, `Series W`, `Series X`, `Series Y`, `Series Z`, `Investment Firm`, `Fund`, `Nonprofit`, `Government`, `Public`, `Acquired`, `Acquired Subsidiary`
  - `investorAttribution` (object, optional, nullable) — Investor-specific attribution when returned from investor-perspective investment views. amountInvested is not added to amountRaised; it is the selected investor's attributed participation amount for this round.
    - `attributionType` (enum, required) — How this attribution row participates in the investor view.
      - Allowed values: `direct`, `managedFund`
    - `joinId` (string, required) — Fundraise investor join identifier
    - `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. 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` (object, optional, nullable) — Round label for the attributed participation
      - `round` (string, required)
  - `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.
  - `round` (string, optional, nullable)
  - `updatedAt` (datetime, optional, nullable)
  - `valuationPostMoney` (long, optional, nullable)
  - `valuationPreMoney` (long, optional, nullable)
- `newsArticle` (list of object, required) — News articles associated with this entity.
  - `id` (integer, required) — Type-safe identifier for news articles
  - `title` (string, required) — Article headline; the headline field is title
  - `author` (string, optional, nullable)
  - `category` (string, optional, nullable)
  - `createdAt` (datetime, optional, nullable)
  - `excerpt` (string, optional, nullable) — Article summary from the source publication feed; null means the feed supplied no description (expected absence, not an error) — full text is NewsDetail.content
  - `externalNewsArticle` (boolean, optional, nullable)
  - `newsImageThumbnail` (string, optional, nullable)
  - `newsUrlOriginal` (string, optional, nullable)
  - `pendingApproval` (integer, optional, nullable)
  - `publication` (string, optional, nullable)
  - `publishedAt` (datetime, optional, nullable)
  - `slug` (string, optional, nullable) — Canonical lowercase URL slug for the resource
  - `updatedAt` (datetime, optional, nullable)
- `person` (list of object, required) — People associated with this entity.
  - `association` (list of object, required) — Entity associations for this person
    - `associationId` (integer, required) — Integer person-entity association join row id, not a person or entity UUID
    - `entityAddress` (list of object, required) — Entity addresses carried on the association projection
      - `address` (integer, optional, nullable) — Legacy address row identifier
      - `addressLine1` (string, optional, nullable)
      - `addressLine2` (string, optional, nullable)
      - `association` (list of object, optional) — Role-period associations for this physical address
        - `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
      - `city` (object, optional, nullable) — City reference
        - `name` (string, required) — City name
        - `id` (integer, optional, nullable)
      - `country` (object, optional, nullable) — Country reference
        - `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)
      - `countryAbbrev` (string, optional, nullable)
      - `createdAt` (datetime, optional, nullable)
      - `fullAddress` (string, optional, nullable) — Single-line formatted address
      - `id` (integer, optional, nullable) — Address record identifier
      - `latitude` (double, optional, nullable)
      - `longitude` (double, optional, nullable)
      - `postalCode` (string, optional, nullable)
      - `state` (object, optional, nullable) — State or region reference
        - `name` (string, required) — State or region name
        - `id` (integer, optional, nullable)
        - `stateAbbrev` (string, optional, nullable) — State or region abbreviation
      - `stateAbbrev` (string, optional, nullable)
      - `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 headquarters or legal/registered address
      - `isPrimary` (boolean, optional, nullable, deprecated) — Deprecated legacy flag marking the primary display address
    - `entityId` (string, required) — Associated entity id
    - `entityLogo` (object, required) — Entity logo image projection
      - `isMonogram` (boolean, required) — Whether entity image monogram
      - `logo` (string, optional, nullable)
      - `logoSquare` (string, optional, nullable)
    - `entitySlug` (string, required) — Canonical lowercase URL slug for the resource
    - `entityUrlLink` (list of object, required) — Entity URL links carried on the association projection
      - `url` (string, required) — Canonical absolute HTTP URL value - validates scheme + host at construction
      - `urlType` (enum, required) — Canonical URL platform type such as website, linkedin, twitter, or github. Lifecycle facts belong on link flags such as isCurrent and isPrimary.
        - Allowed values: `website`, `linkedin`, `twitter`, `github`, `facebook`, `instagram`, `tiktok`, `youtube`, `subreddit`, `forum`, `documentation`, `support`, `statuspage`, `changelog`, `roadmap`, `discord`, `crunchbase`, `wellfound`, `angellist`, `glassdoor`, `theorg`, `ycombinator`, `wikipedia`, `pitchbook`, `morningstar`, `bloomberg`, `nyse`, `nasdaq`, `g2`, `producthunt`, `trustpilot`, `alternativeto`, `gartnerpeerinsights`, `getapp`, `sourceforge`, `appstore`, `googleplay`, `capterra`, `trustradius`, `hubspotmarketplace`, `slackappdirectory`, `awsmarketplace`, `salesforceappexchange`, `chromewebstore`, `vscodemarketplace`, `npm`, `pypi`, `maven`, `dockerhub`, `homebrew`, `crates`
      - `crawlCdnProvider` (enum, optional, nullable) — CDN or hosting provider fronting a web URL.
        - 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) — JavaScript rendering requirement for crawl checks.
        - 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`.
      - `owner` (object, 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.
        - `entityId` (string, optional, nullable) — Canonical entity UUID
        - `personId` (string, optional, nullable) — Canonical person UUID
      - `sourceId` (string, optional, nullable)
      - `status` (string, optional, nullable)
      - `statusChecked` (datetime, optional, nullable)
      - `updatedAt` (datetime, optional, nullable)
    - `personAddress` (list of object, required) — Person addresses carried on the association projection
      - `address` (integer, optional, nullable) — Legacy address row identifier
      - `addressLine1` (string, optional, nullable)
      - `addressLine2` (string, optional, nullable)
      - `association` (list of object, optional) — Role-period associations for this physical address
        - `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
      - `city` (object, optional, nullable) — City reference
        - `name` (string, required) — City name
        - `id` (integer, optional, nullable)
      - `country` (object, optional, nullable) — Country reference
        - `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)
      - `countryAbbrev` (string, optional, nullable)
      - `createdAt` (datetime, optional, nullable)
      - `fullAddress` (string, optional, nullable) — Single-line formatted address
      - `id` (integer, optional, nullable) — Address record identifier
      - `latitude` (double, optional, nullable)
      - `longitude` (double, optional, nullable)
      - `postalCode` (string, optional, nullable)
      - `state` (object, optional, nullable) — State or region reference
        - `name` (string, required) — State or region name
        - `id` (integer, optional, nullable)
        - `stateAbbrev` (string, optional, nullable) — State or region abbreviation
      - `stateAbbrev` (string, optional, nullable)
      - `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 headquarters or legal/registered address
      - `isPrimary` (boolean, optional, nullable, deprecated) — Deprecated legacy flag marking the primary display address
    - `personId` (string, required) — Associated person id
    - `personImage` (object, required) — Person image projection
      - `isMonogram` (boolean, required) — Whether person image monogram
      - `picture` (string, optional, nullable)
    - `personName` (string, required)
    - `personSlug` (string, required) — Canonical lowercase URL slug for the resource
    - `personUrlLink` (list of object, required) — Person URL links carried on the association projection
      - `url` (string, required) — Canonical absolute HTTP URL value - validates scheme + host at construction
      - `urlType` (enum, required) — Canonical URL platform type such as website, linkedin, twitter, or github. Lifecycle facts belong on link flags such as isCurrent and isPrimary.
        - Allowed values: `website`, `linkedin`, `twitter`, `github`, `facebook`, `instagram`, `tiktok`, `youtube`, `subreddit`, `forum`, `documentation`, `support`, `statuspage`, `changelog`, `roadmap`, `discord`, `crunchbase`, `wellfound`, `angellist`, `glassdoor`, `theorg`, `ycombinator`, `wikipedia`, `pitchbook`, `morningstar`, `bloomberg`, `nyse`, `nasdaq`, `g2`, `producthunt`, `trustpilot`, `alternativeto`, `gartnerpeerinsights`, `getapp`, `sourceforge`, `appstore`, `googleplay`, `capterra`, `trustradius`, `hubspotmarketplace`, `slackappdirectory`, `awsmarketplace`, `salesforceappexchange`, `chromewebstore`, `vscodemarketplace`, `npm`, `pypi`, `maven`, `dockerhub`, `homebrew`, `crates`
      - `crawlCdnProvider` (enum, optional, nullable) — CDN or hosting provider fronting a web URL.
        - 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) — JavaScript rendering requirement for crawl checks.
        - 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`.
      - `owner` (object, 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.
        - `entityId` (string, optional, nullable) — Canonical entity UUID
        - `personId` (string, optional, nullable) — Canonical person UUID
      - `sourceId` (string, optional, nullable)
      - `status` (string, optional, nullable)
      - `statusChecked` (datetime, optional, nullable)
      - `updatedAt` (datetime, optional, nullable)
    - `createdAt` (datetime, optional, nullable)
    - `creator` (string, optional, nullable) — Association creator label
    - `endDate` (datetime, optional, nullable) — Association period end timestamp
    - `entityName` (string, optional, nullable)
    - `entityOperatingStatus` (string, optional, nullable)
    - `entityType` (enum, optional, nullable) — Entity type classification
      - Allowed values: `Company`, `Investment Firm`, `Fund`, `Nonprofit`, `Government`, `Organization`, `Business Line`, `Product`, `Service`
    - `isCurrent` (boolean, optional, nullable)
    - `score` (integer, optional, nullable)
    - `startDate` (datetime, optional, nullable) — Association period start timestamp
    - `titleFunction` (string, optional, nullable) — Read-side corporate title function for the association row
    - `titleId` (integer, optional, nullable) — Corporate title id for the association row
    - `titleLevel` (string, optional, nullable) — Read-side corporate title level for the association row
    - `titleName` (string, optional, nullable) — Read-side corporate title text for the association row
    - `updatedAt` (datetime, optional, nullable)
  - `core` (object, required) — Canonical person core record
    - `id` (string, required) — Canonical person UUID
    - `image` (object, required) — Read projection: person image fields for detail/list responses
      - `isMonogram` (boolean, required) — Whether person image monogram
      - `picture` (string, optional, nullable)
    - `nameAlias` (list of object, required) — Display and search aliases for this person
      - `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`
    - `nameFull` (string, required)
    - `slug` (string, required) — Canonical lowercase URL slug for the resource
    - `source` (object, required) — Grouped source/provenance metadata for private v1 response fields
      - `changedAt` (datetime, optional, nullable)
      - `dataSourceUpdatedAt` (datetime, optional, nullable)
      - `detail` (string, optional, nullable)
      - `kind` (string, optional, nullable)
      - `pendingApproval` (integer, optional, nullable)
      - `sourceId` (string, optional, nullable)
      - `status` (string, optional, nullable)
    - `text` (object, required) — Grouped 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
    - `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` (object, optional, nullable) — Semantic embedding match evidence populated only for semantic people reads.
      - `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.
      - `sourceJson` (string, required) — Serialized JSONB source document stored for the embedding row.
      - `sourceText` (string, required) — Source text used to compute the stored embedding.
      - `sourceType` (enum, required) — Stored content embedding source partition.
        - Allowed values: `entity`, `person`, `newsArticle`, `blogPost`, `text`, `classificationTag`, `classificationCode`, `product`, `service`, `agentHelpDoc`
    - `suffix` (string, optional, nullable)
    - `updatedAt` (datetime, optional, nullable) — Last modification timestamp
  - `enrichment` (object, required) — Supplemental person data — addresses and URL links
    - `address` (list of object, required) — Addresses associated with the person
      - `address` (integer, optional, nullable) — Legacy address row identifier
      - `addressLine1` (string, optional, nullable)
      - `addressLine2` (string, optional, nullable)
      - `association` (list of object, optional) — Role-period associations for this physical address
        - `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
      - `city` (object, optional, nullable) — City reference
        - `name` (string, required) — City name
        - `id` (integer, optional, nullable)
      - `country` (object, optional, nullable) — Country reference
        - `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)
      - `countryAbbrev` (string, optional, nullable)
      - `createdAt` (datetime, optional, nullable)
      - `fullAddress` (string, optional, nullable) — Single-line formatted address
      - `id` (integer, optional, nullable) — Address record identifier
      - `latitude` (double, optional, nullable)
      - `longitude` (double, optional, nullable)
      - `postalCode` (string, optional, nullable)
      - `state` (object, optional, nullable) — State or region reference
        - `name` (string, required) — State or region name
        - `id` (integer, optional, nullable)
        - `stateAbbrev` (string, optional, nullable) — State or region abbreviation
      - `stateAbbrev` (string, optional, nullable)
      - `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 headquarters or legal/registered address
      - `isPrimary` (boolean, optional, nullable, deprecated) — Deprecated legacy flag marking the primary display address
    - `urlLink` (list of object, required) — External and social URL links associated with the person
      - `url` (string, required) — Canonical absolute HTTP URL value - validates scheme + host at construction
      - `urlType` (enum, required) — Canonical URL platform type such as website, linkedin, twitter, or github. Lifecycle facts belong on link flags such as isCurrent and isPrimary.
        - Allowed values: `website`, `linkedin`, `twitter`, `github`, `facebook`, `instagram`, `tiktok`, `youtube`, `subreddit`, `forum`, `documentation`, `support`, `statuspage`, `changelog`, `roadmap`, `discord`, `crunchbase`, `wellfound`, `angellist`, `glassdoor`, `theorg`, `ycombinator`, `wikipedia`, `pitchbook`, `morningstar`, `bloomberg`, `nyse`, `nasdaq`, `g2`, `producthunt`, `trustpilot`, `alternativeto`, `gartnerpeerinsights`, `getapp`, `sourceforge`, `appstore`, `googleplay`, `capterra`, `trustradius`, `hubspotmarketplace`, `slackappdirectory`, `awsmarketplace`, `salesforceappexchange`, `chromewebstore`, `vscodemarketplace`, `npm`, `pypi`, `maven`, `dockerhub`, `homebrew`, `crates`
      - `crawlCdnProvider` (enum, optional, nullable) — CDN or hosting provider fronting a web URL.
        - 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) — JavaScript rendering requirement for crawl checks.
        - 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`.
      - `owner` (object, 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.
        - `entityId` (string, optional, nullable) — Canonical entity UUID
        - `personId` (string, optional, nullable) — Canonical person UUID
      - `sourceId` (string, optional, nullable)
      - `status` (string, optional, nullable)
      - `statusChecked` (datetime, optional, nullable)
      - `updatedAt` (datetime, optional, nullable)
  - `investment` (list of object, required) — Investments associated with this person
    - `company` (object, required) — Company metadata associated with a person investment
      - `entity` (object, 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. Returned directly by thin-mode (?mode=thin) and alphabetical (?letter=X) list endpoints. Nested as .core inside EntityList for default list reads and EntityDetail for detail reads.
        - `id` (string, required) — Unique entity identifier
        - `image` (object, required) — Logo and monogram image metadata
          - `isMonogram` (boolean, required) — Whether entity image monogram
          - `logo` (string, optional, nullable)
          - `logoSquare` (string, optional, nullable)
        - `nameAlias` (list of object, 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.
          - `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`
        - `nameBrand` (string, required) — Resolved display brand name
        - `slug` (string, required) — URL-safe identifier
        - `createdAt` (datetime, optional, nullable) — Record creation timestamp
        - `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 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` (object, optional, nullable) — Sub-route eligibility, populated by the sitemap projection. Null on non-sitemap reads to keep thin payloads compact.
          - `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.
        - `typeRecord` (enum, optional, nullable) — Entity type classification
          - Allowed values: `Company`, `Investment Firm`, `Fund`, `Nonprofit`, `Government`, `Organization`, `Business Line`, `Product`, `Service`
        - `updatedAt` (datetime, optional, nullable) — Last modification timestamp
    - `fundraiseTransactionId` (string, required) — Canonical fundraise transaction UUID
    - `id` (string, required)
    - `investmentDate` (datetime, required)
    - `amount` (double, optional, nullable)
    - `date` (datetime, optional, nullable)
    - `fundraiseTransaction` (object, optional, nullable) — Fundraise transaction metadata linked to a person investment
      - `id` (string, required) — Canonical fundraise transaction UUID
      - `image` (object, required) — 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)
      - `nameBrand` (string, required)
      - `amountRaised` (double, optional, nullable)
      - `dateAnnounced` (datetime, optional, nullable)
      - `investorCount` (integer, optional, nullable)
      - `round` (string, optional, nullable)
      - `status` (string, optional, nullable)
      - `valuationPostMoney` (double, optional, nullable)
    - `investorAttribution` (object, optional, nullable) — Investor-specific attribution for this person's participation in the fundraise round. amountInvested is a plain decimal number in the fundraise transaction currency and is not added to amount.
      - `attributionType` (enum, required) — How this attribution row participates in the investor view.
        - Allowed values: `direct`, `managedFund`
      - `joinId` (string, required) — Fundraise investor join identifier
      - `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. 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` (object, optional, nullable) — Round label for the attributed participation
        - `round` (string, required)
    - `round` (string, optional, nullable)
  - `nameAlias` (list of object, required) — Display and search aliases for this person
    - `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`
  - `articleCount` (integer, optional, nullable)
  - `pendingApproval` (integer, optional, nullable)
- `relationship` (list of object, required) — Entity relationships.
  - `entity` (object, required) — Joined entity on the other side of this relationship — read-only display projection. Writes identify both sides only via the flat sourceEntityId and targetEntityId UUIDs, never a nested entity object.
    - `id` (string, required) — Unique entity identifier
    - `image` (object, required) — Logo and monogram image metadata
      - `isMonogram` (boolean, required) — Whether entity image monogram
      - `logo` (string, optional, nullable)
      - `logoSquare` (string, optional, nullable)
    - `nameAlias` (list of object, 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.
      - `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`
    - `nameBrand` (string, required) — Resolved display brand name
    - `slug` (string, required) — URL-safe identifier
    - `createdAt` (datetime, optional, nullable) — Record creation timestamp
    - `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 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` (object, optional, nullable) — Sub-route eligibility, populated by the sitemap projection. Null on non-sitemap reads to keep thin payloads compact.
      - `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.
    - `typeRecord` (enum, optional, nullable) — Entity type classification
      - Allowed values: `Company`, `Investment Firm`, `Fund`, `Nonprofit`, `Government`, `Organization`, `Business Line`, `Product`, `Service`
    - `updatedAt` (datetime, optional, nullable) — Last modification timestamp
  - `relationship` (list of object, required) — Nested relationships for the joined entity
  - `relationshipType` (string, required) — Canonical relationship type, one of: acceleratorParticipant, acquirer, affinity, calculated, competingProductService, competitor, customer, fundManagerFirm, parent, productService, serviceProvider, similarCompany, spinOffFrom, successor. Similarity endpoint rows use stored relationship types when a curation row exists and calculated when the row comes from semantic/vector similarity.
  - `asOf` (date, optional, nullable) — Effective date for this relationship when known
  - `comparisonSignals` (object, optional, nullable) — Competitive comparison signals for the joined entity when it is a product/service provider — sells-to, pricing model, ownership, funding, and website. Null for every other joined entity. Lets comparison surfaces render provider columns without a second per-provider fetch.
    - `ownership` (list of string, required) — Provider ownership structure (current typeOwnership tags)
    - `pricingModel` (list of string, required) — Provider pricing/revenue model (current typeRevenue tags)
    - `sellsTo` (list of string, required) — Customer types the provider sells to (current typeCustomer tags)
    - `fundingStage` (enum, optional, nullable) — Latest funding stage when known
      - Allowed values: `Angel`, `Pre-Seed`, `Seed`, `Series A`, `Series B`, `Series C`, `Series D`, `Series E`, `Series F`, `Series G`, `Series H`, `Series I`, `Series J`, `Series K`, `Series L`, `Series M`, `Series N`, `Series O`, `Series P`, `Series Q`, `Series R`, `Series S`, `Series T`, `Series U`, `Series V`, `Series W`, `Series X`, `Series Y`, `Series Z`, `Investment Firm`, `Fund`, `Nonprofit`, `Government`, `Public`, `Acquired`, `Acquired Subsidiary`
    - `totalRaised` (double, optional, nullable) — Total capital raised when known
    - `website` (string, optional, nullable) — Provider website URL when known
  - `createdAt` (datetime, optional, nullable)
  - `detail` (string, optional, nullable) — Relationship-specific detail. acceleratorParticipant rows use `batch=<label>`, or `program=<name>; batch=<label>` only for a distinct sub-program. program= never repeats the accelerator name or the batch, and batch= never contains the accelerator name — the row already points to the accelerator entity.
  - `id` (integer, optional, nullable) — Integer entity_relationship.id row id, not an entity UUID
  - `isCurrent` (boolean, optional, nullable) — Current-state curation flag for this relationship row. Default relationship reads return only rows where isCurrent=true and isPrimary=true.
  - `isPrimary` (boolean, optional, nullable) — Primary/renderable curation flag for this relationship row. isCurrent=false or isPrimary=false hides the row from default relationship reads.
  - `source` (string, optional, nullable) — Source URL or compact source label copied to the relationship row
  - `sourceEntityId` (string, optional, nullable) — Canonical source entity UUID stored on the relationship row. Compare with the requested entity id and `/v1/entities/relationships/types` sourceRole/targetRole to orient directional relationships such as parent.
  - `targetEntityId` (string, optional, nullable) — Canonical target entity UUID stored on the relationship row. Compare with the requested entity id and `/v1/entities/relationships/types` sourceRole/targetRole to orient directional relationships such as parent.
  - `updatedAt` (datetime, optional, nullable)
- `research` (object, required) — Combined research disclosure: governed detail rows, snippets, and accelerator participation.
  - `acceleratorParticipation` (list of object, required) — Joined accelerator participation derived from governed accelerator research rows
    - `accelerator` (object, required) — Canonical thin accelerator entity from the acceleratorParticipant relationship
      - `id` (string, required) — Unique entity identifier
      - `image` (object, required) — Logo and monogram image metadata
        - `isMonogram` (boolean, required) — Whether entity image monogram
        - `logo` (string, optional, nullable)
        - `logoSquare` (string, optional, nullable)
      - `nameAlias` (list of object, 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.
        - `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`
      - `nameBrand` (string, required) — Resolved display brand name
      - `slug` (string, required) — URL-safe identifier
      - `createdAt` (datetime, optional, nullable) — Record creation timestamp
      - `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 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` (object, optional, nullable) — Sub-route eligibility, populated by the sitemap projection. Null on non-sitemap reads to keep thin payloads compact.
        - `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.
      - `typeRecord` (enum, optional, nullable) — Entity type classification
        - Allowed values: `Company`, `Investment Firm`, `Fund`, `Nonprofit`, `Government`, `Organization`, `Business Line`, `Product`, `Service`
      - `updatedAt` (datetime, optional, nullable) — Last modification timestamp
    - `acceleratorName` (string, required) — Full accelerator participation name, including program detail
    - `asOfDate` (datetime, required) — Participation effective timestamp
    - `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
  - `detail` (list of object, required) — Flat governed research detail rows filtered by visibility
    - `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` (datetime, optional, nullable)
    - `createdAt` (datetime, optional, nullable)
    - `creator` (string, optional, nullable)
    - `dataConfidence` (enum, optional, nullable) — Confidence tier stored verbatim in res_entity_detail.data_confidence.
      - Allowed values: `low`, `medium`, `high`
    - `derivedRange` (object, optional, nullable) — Read-only range derived only for targetDateAbsolute detail rows
      - `asOfDate` (datetime, required) — Observation timestamp 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
    - `discreteValue` (double, optional, nullable)
    - `textValue` (string, optional, nullable)
    - `updatedAt` (datetime, optional, nullable)
    - `valueResearchDetail` (string, optional, nullable)
  - `snippet` (list of object, required) — Research text snippets for this entity
    - `entityId` (string, required) — Canonical entity UUID
    - `id` (integer, required)
    - `isCurrent` (boolean, required) — Current row. The live snippet for its type; demoted historical rows read only with includePrivate.
    - `isPrimary` (boolean, required) — Primary row among the current snippets of its type.
    - `text` (string, required)
    - `textType` (string, required)
    - `visible` (boolean, required) — Whether the snippet appears in default reads. Admin/private reads (includePrivate) also return hidden rows.
    - `compliance` (object, optional, nullable) — Derived character/word counts and governed-contract compliance for this snippet row; null when not evaluated.
      - `characterCount` (integer, required) — Character count of the row text (UTF-16 units).
      - `meetsRequirements` (boolean, required) — Whether the text satisfies every governed contract rule.
      - `violation` (list of string, required) — One human-readable reason per unmet rule; empty when compliant.
      - `wordCount` (integer, required) — Word count of the row text (whitespace-separated tokens).
    - `createdAt` (datetime, optional, nullable)
    - `updatedAt` (datetime, optional, nullable)
- `sitemap` (object, required) — Sub-route eligibility computed once at the persistence boundary.
  - `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.
- `uniqueId` (list of object, required) — External registry identifiers associated with this entity.
  - `createdAt` (datetime, required) — Row creation timestamp.
  - `id` (integer, required) — Unique-id row id.
  - `idType` (enum, required) — Identifier type.
    - Allowed values: `ein`, `secCik`, `ticker`, `lei`, `duns`, `isin`, `cusip`, `crd`, `orcid`
  - `identifier` (string, required) — Identifier value as issued by the registry (normalized per type).
  - `owner` (object, required) — Owning entity or person id; exactly one nested id is present.
    - `entityId` (string, optional, nullable) — Canonical entity UUID
    - `personId` (string, optional, nullable) — Canonical person UUID
  - `updatedAt` (datetime, required) — Row update timestamp.
  - `source` (string, optional, nullable) — Attribution source label for the mapping, when recorded.
- `publicUrl` (string, optional, nullable) — Absolute canonical public URL when this detail has a renderable public route.

## Examples

**Request**

```json
{}
```

**Response**

```json
{
  "core": {
    "id": "string",
    "image": {
      "isMonogram": true,
      "logo": "string",
      "logoSquare": "string"
    },
    "nameAlias": [
      {
        "name": "Bun",
        "displayable": true,
        "type": "alternativeDba"
      }
    ],
    "nameBrand": "string",
    "slug": "aventure-vc",
    "createdAt": "2024-01-15T09:30:00Z",
    "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
    },
    "typeRecord": "Company",
    "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": [
        {
          "creatable": true,
          "name": "string",
          "writable": true,
          "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": [
        {
          "creatable": true,
          "name": "string",
          "writable": true,
          "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": [
        {
          "creatable": true,
          "name": "string",
          "writable": true,
          "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": [
        {
          "creatable": true,
          "name": "string",
          "writable": true,
          "category": "string",
          "id": 1,
          "isCurrent": true,
          "isPrimary": true,
          "code": 1,
          "createdAt": "2024-01-15T09:30:00Z",
          "entityClassificationId": 1,
          "level": 1,
          "updatedAt": "2024-01-15T09:30:00Z"
        }
      ],
      "tag": [
        {
          "creatable": true,
          "name": "string",
          "writable": true,
          "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": [
        {
          "creatable": true,
          "name": "string",
          "writable": true,
          "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": [
        {
          "creatable": true,
          "name": "string",
          "writable": true,
          "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": [
        {
          "creatable": true,
          "name": "string",
          "writable": true,
          "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": [
        {
          "creatable": true,
          "name": "string",
          "writable": true,
          "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": [
        {
          "creatable": true,
          "name": "string",
          "writable": true,
          "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": "website",
        "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,
      "latestValuation": 1.1,
      "mostRecentAmount": 1.1,
      "mostRecentDate": "2023-01-15",
      "stage": "Angel"
    }
  },
  "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": "2024-01-15T09:30:00Z",
      "dateFundingComplete": "2024-01-15T09:30:00Z",
      "dateInvestorExit": "2024-01-15T09:30:00Z",
      "entity": {
        "core": {
          "id": "string",
          "image": {
            "isMonogram": true,
            "logo": "string",
            "logoSquare": "string"
          },
          "nameAlias": [
            {
              "name": "Bun",
              "displayable": true,
              "type": "alternativeDba"
            }
          ],
          "nameBrand": "string",
          "slug": "aventure-vc",
          "createdAt": "2024-01-15T09:30:00Z",
          "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
          },
          "typeRecord": "Company",
          "updatedAt": "2024-01-15T09:30:00Z"
        },
        "fundingDetail": {
          "fundingRoundCount": 1,
          "investorCount": 1,
          "totalRaised": 1.1,
          "latestValuation": 1.1,
          "mostRecentAmount": 1.1,
          "mostRecentDate": "2023-01-15",
          "stage": "Angel"
        }
      },
      "investorAttribution": {
        "attributionType": "direct",
        "joinId": "string",
        "leadInvestor": true,
        "transactionId": "string",
        "amountInvested": 1.1,
        "beneficialEntityId": "string",
        "fundManagerRelationshipId": 1,
        "recordedEntityId": "string",
        "round": {
          "round": "string"
        }
      },
      "investorCount": 1,
      "round": "string",
      "updatedAt": "2024-01-15T09:30:00Z",
      "valuationPostMoney": 1,
      "valuationPreMoney": 1
    }
  ],
  "newsArticle": [
    {
      "id": 1,
      "title": "string",
      "author": "string",
      "category": "string",
      "createdAt": "2024-01-15T09:30:00Z",
      "excerpt": "string",
      "externalNewsArticle": true,
      "newsImageThumbnail": "string",
      "newsUrlOriginal": "string",
      "pendingApproval": 1,
      "publication": "string",
      "publishedAt": "2024-01-15T09:30:00Z",
      "slug": "aventure-vc",
      "updatedAt": "2024-01-15T09:30:00Z"
    }
  ],
  "person": [
    {
      "association": [
        {
          "associationId": 1,
          "entityAddress": [
            {
              "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
            }
          ],
          "entityId": "string",
          "entityLogo": {
            "isMonogram": true,
            "logo": "string",
            "logoSquare": "string"
          },
          "entitySlug": "aventure-vc",
          "entityUrlLink": [
            {
              "url": "https://example.com",
              "urlType": "website",
              "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"
            }
          ],
          "personAddress": [
            {
              "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
            }
          ],
          "personId": "string",
          "personImage": {
            "isMonogram": true,
            "picture": "string"
          },
          "personName": "string",
          "personSlug": "aventure-vc",
          "personUrlLink": [
            {
              "url": "https://example.com",
              "urlType": "website",
              "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"
            }
          ],
          "createdAt": "2024-01-15T09:30:00Z",
          "creator": "string",
          "endDate": "2024-01-15T09:30:00Z",
          "entityName": "string",
          "entityOperatingStatus": "string",
          "entityType": "Company",
          "isCurrent": true,
          "score": 1,
          "startDate": "2024-01-15T09:30:00Z",
          "titleFunction": "string",
          "titleId": 1,
          "titleLevel": "string",
          "titleName": "string",
          "updatedAt": "2024-01-15T09:30:00Z"
        }
      ],
      "core": {
        "id": "string",
        "image": {
          "isMonogram": true,
          "picture": "string"
        },
        "nameAlias": [
          {
            "name": "Bun",
            "displayable": true,
            "type": "nickname"
          }
        ],
        "nameFull": "string",
        "slug": "aventure-vc",
        "source": {
          "changedAt": "2024-01-15T09:30:00Z",
          "dataSourceUpdatedAt": "2024-01-15T09:30:00Z",
          "detail": "string",
          "kind": "string",
          "pendingApproval": 1,
          "sourceId": "string",
          "status": "string"
        },
        "text": {
          "expanded": "Canonical expanded summary for grouped text assertions.",
          "generatedDescription": "Acme AI builds AI copilots for growth teams.",
          "short": "Canonical short summary"
        },
        "createdAt": "2024-01-15T09:30:00Z",
        "gender": "string",
        "lastModifiedAt": "2024-01-15T09:30:00Z",
        "nameFirst": "string",
        "nameLast": "string",
        "nameMiddle": "string",
        "nickname": "string",
        "publicId": "pV1StGXR8Z5ab",
        "semanticMatch": {
          "computedAt": "2024-01-15T09:30:00Z",
          "cosineDistance": 1.1,
          "cosineScore": 1.1,
          "modelVersion": "string",
          "rank": 1,
          "sourceHash": "string",
          "sourceId": "string",
          "sourceJson": "string",
          "sourceText": "string",
          "sourceType": "entity"
        },
        "suffix": "string",
        "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
          }
        ],
        "urlLink": [
          {
            "url": "https://example.com",
            "urlType": "website",
            "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"
          }
        ]
      },
      "investment": [
        {
          "company": {
            "entity": {
              "id": "string",
              "image": {
                "isMonogram": true,
                "logo": "string",
                "logoSquare": "string"
              },
              "nameAlias": [
                {
                  "name": "Bun",
                  "displayable": true,
                  "type": "alternativeDba"
                }
              ],
              "nameBrand": "string",
              "slug": "aventure-vc",
              "createdAt": "2024-01-15T09:30:00Z",
              "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
              },
              "typeRecord": "Company",
              "updatedAt": "2024-01-15T09:30:00Z"
            }
          },
          "fundraiseTransactionId": "string",
          "id": "string",
          "investmentDate": "2024-01-15T09:30:00Z",
          "amount": 1.1,
          "date": "2024-01-15T09:30:00Z",
          "fundraiseTransaction": {
            "id": "string",
            "image": {
              "isMonogram": true,
              "logo": "string",
              "logoSquare": "string"
            },
            "nameBrand": "string",
            "amountRaised": 1.1,
            "dateAnnounced": "2024-01-15T09:30:00Z",
            "investorCount": 1,
            "round": "string",
            "status": "string",
            "valuationPostMoney": 1.1
          },
          "investorAttribution": {
            "attributionType": "direct",
            "joinId": "string",
            "leadInvestor": true,
            "transactionId": "string",
            "amountInvested": 1.1,
            "beneficialEntityId": "string",
            "fundManagerRelationshipId": 1,
            "recordedEntityId": "string",
            "round": {
              "round": "string"
            }
          },
          "round": "string"
        }
      ],
      "nameAlias": [
        {
          "name": "Bun",
          "displayable": true,
          "type": "nickname"
        }
      ],
      "articleCount": 1,
      "pendingApproval": 1
    }
  ],
  "relationship": [
    {
      "entity": {
        "id": "string",
        "image": {
          "isMonogram": true,
          "logo": "string",
          "logoSquare": "string"
        },
        "nameAlias": [
          {
            "name": "Bun",
            "displayable": true,
            "type": "alternativeDba"
          }
        ],
        "nameBrand": "string",
        "slug": "aventure-vc",
        "createdAt": "2024-01-15T09:30:00Z",
        "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
        },
        "typeRecord": "Company",
        "updatedAt": "2024-01-15T09:30:00Z"
      },
      "relationship": [
        null
      ],
      "relationshipType": "string",
      "asOf": "2023-01-15",
      "comparisonSignals": {
        "ownership": [
          "string"
        ],
        "pricingModel": [
          "string"
        ],
        "sellsTo": [
          "string"
        ],
        "fundingStage": "Angel",
        "totalRaised": 1.1,
        "website": "string"
      },
      "createdAt": "2024-01-15T09:30:00Z",
      "detail": "string",
      "id": 1,
      "isCurrent": true,
      "isPrimary": true,
      "source": "string",
      "sourceEntityId": "string",
      "targetEntityId": "string",
      "updatedAt": "2024-01-15T09:30:00Z"
    }
  ],
  "research": {
    "acceleratorParticipation": [
      {
        "accelerator": {
          "id": "string",
          "image": {
            "isMonogram": true,
            "logo": "string",
            "logoSquare": "string"
          },
          "nameAlias": [
            {
              "name": "Bun",
              "displayable": true,
              "type": "alternativeDba"
            }
          ],
          "nameBrand": "string",
          "slug": "aventure-vc",
          "createdAt": "2024-01-15T09:30:00Z",
          "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
          },
          "typeRecord": "Company",
          "updatedAt": "2024-01-15T09:30:00Z"
        },
        "acceleratorName": "string",
        "asOfDate": "2024-01-15T09:30:00Z",
        "id": "string",
        "batch": "string",
        "program": "string",
        "status": "string"
      }
    ],
    "detail": [
      {
        "entityId": "string",
        "id": 1,
        "typeResearchDetail": "string",
        "valueType": "text",
        "asOfDate": "2024-01-15T09:30:00Z",
        "createdAt": "2024-01-15T09:30:00Z",
        "creator": "string",
        "dataConfidence": "low",
        "derivedRange": {
          "asOfDate": "2024-01-15T09:30:00Z",
          "bucket": "pastDue",
          "monthsFromNow": 1,
          "targetDate": "2024-01-15T09:30:00Z"
        },
        "discreteValue": 1.1,
        "textValue": "string",
        "updatedAt": "2024-01-15T09:30:00Z",
        "valueResearchDetail": "string"
      }
    ],
    "snippet": [
      {
        "entityId": "string",
        "id": 1,
        "isCurrent": true,
        "isPrimary": true,
        "text": "string",
        "textType": "string",
        "visible": true,
        "compliance": {
          "characterCount": 1,
          "meetsRequirements": true,
          "violation": [
            "string"
          ],
          "wordCount": 1
        },
        "createdAt": "2024-01-15T09:30:00Z",
        "updatedAt": "2024-01-15T09:30:00Z"
      }
    ]
  },
  "sitemap": {
    "hasAnalysis": true,
    "hasEmployees": true,
    "hasFundraising": true,
    "hasNews": true,
    "productServiceSlug": [
      "string"
    ],
    "hasAcquisitions": false
  },
  "uniqueId": [
    {
      "createdAt": "2024-01-15T09:30:00Z",
      "id": 1,
      "idType": "ein",
      "identifier": "string",
      "owner": {
        "entityId": "string",
        "personId": "string"
      },
      "updatedAt": "2024-01-15T09:30:00Z",
      "source": "string"
    }
  ],
  "publicUrl": "string"
}
```

**SDK Code**

```python
import requests

url = "https://api.aventure.vc/v1/entities/detail"

querystring = {"actorType":"agent","agentChassis":"codex-cli","id":"04e2bf9c-a100-72ad-83ff-ba69c647b30b","slug":"acme-corp","sourceDetail":"aventure.vc","sourceProvider":"TechCrunch","sourceProviderId":"tc-2026-05-20-example-round","sourceProviderSlug":"example-round","sourceType":"requestChangeForm"}

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

response = requests.put(url, json=payload, headers=headers, params=querystring)

print(response.json())
```

```javascript
const url = 'https://api.aventure.vc/v1/entities/detail?actorType=agent&agentChassis=codex-cli&id=04e2bf9c-a100-72ad-83ff-ba69c647b30b&slug=acme-corp&sourceDetail=aventure.vc&sourceProvider=TechCrunch&sourceProviderId=tc-2026-05-20-example-round&sourceProviderSlug=example-round&sourceType=requestChangeForm';
const options = {
  method: 'PUT',
  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/entities/detail?actorType=agent&agentChassis=codex-cli&id=04e2bf9c-a100-72ad-83ff-ba69c647b30b&slug=acme-corp&sourceDetail=aventure.vc&sourceProvider=TechCrunch&sourceProviderId=tc-2026-05-20-example-round&sourceProviderSlug=example-round&sourceType=requestChangeForm"

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

	req, _ := http.NewRequest("PUT", 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/entities/detail?actorType=agent&agentChassis=codex-cli&id=04e2bf9c-a100-72ad-83ff-ba69c647b30b&slug=acme-corp&sourceDetail=aventure.vc&sourceProvider=TechCrunch&sourceProviderId=tc-2026-05-20-example-round&sourceProviderSlug=example-round&sourceType=requestChangeForm")

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

request = Net::HTTP::Put.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.put("https://api.aventure.vc/v1/entities/detail?actorType=agent&agentChassis=codex-cli&id=04e2bf9c-a100-72ad-83ff-ba69c647b30b&slug=acme-corp&sourceDetail=aventure.vc&sourceProvider=TechCrunch&sourceProviderId=tc-2026-05-20-example-round&sourceProviderSlug=example-round&sourceType=requestChangeForm")
  .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('PUT', 'https://api.aventure.vc/v1/entities/detail?actorType=agent&agentChassis=codex-cli&id=04e2bf9c-a100-72ad-83ff-ba69c647b30b&slug=acme-corp&sourceDetail=aventure.vc&sourceProvider=TechCrunch&sourceProviderId=tc-2026-05-20-example-round&sourceProviderSlug=example-round&sourceType=requestChangeForm', [
  'body' => '{}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
  ],
]);

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

```csharp
using RestSharp;

var client = new RestClient("https://api.aventure.vc/v1/entities/detail?actorType=agent&agentChassis=codex-cli&id=04e2bf9c-a100-72ad-83ff-ba69c647b30b&slug=acme-corp&sourceDetail=aventure.vc&sourceProvider=TechCrunch&sourceProviderId=tc-2026-05-20-example-round&sourceProviderSlug=example-round&sourceType=requestChangeForm");
var request = new RestRequest(Method.PUT);
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/entities/detail?actorType=agent&agentChassis=codex-cli&id=04e2bf9c-a100-72ad-83ff-ba69c647b30b&slug=acme-corp&sourceDetail=aventure.vc&sourceProvider=TechCrunch&sourceProviderId=tc-2026-05-20-example-round&sourceProviderSlug=example-round&sourceType=requestChangeForm")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "PUT"
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()
```