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

# Get entity people association

GET https://api.aventure.vc/v1/entities/{entityId}/people/{associationId}

Returns one entity-scoped association detail. Public and client-secret reads hide associations to hidden entities; trusted admin credentials can read them back.

Reference: https://docs.aventure.vc/api-reference/a-venture-api/entity-person-associations/get-entity-people-association

## Authentication

- `X-Client-Secret` header (required) — Client secret for read-only service-to-service access (no writes)

## Request

### Path parameters

- `entityId` (string, required) — Entity UUID
- `associationId` (integer, required) — Association id

### Query parameters

- `id` (string, optional) — Entity unique identifier (UUID) — at least one of id or slug required
- `slug` (string, optional) — Entity URL-friendly identifier — at least one of id or slug required
- `search` (string, optional) — Search term filter
- `role` (string, optional) — Association role filter
- `isCurrent` (boolean, optional) — Current association filter
- `includeUrl` (boolean, optional) — Include person URL records
- `includeAddress` (boolean, optional) — Include person address records
- `as` (string, optional) — Projection: `core` (default) returns person identity only and omits association fields. `association` returns PersonDetail rows with the matching join under `association[]`; read title and period fields from `association[].titleName`, `association[].startDate`, and `association[].endDate`. Person sitemap visibility is owned by people detail/status reads, not this list projection.
- `personSlug` (string, optional) — Person slug fallback for entity-keyed writes
- `countOnly` (boolean, optional) — Return count metadata without full content
- `permitMonogram` (boolean, optional) — Permit generated monogram fallback
- `includePrivate` (boolean, optional) — Privileged read scope. Includes associations on hidden entities. Defaults to private visibility for admin API key or ROLE_ADMIN callers; explicit true requires that authority.

## Response

### 200

OK

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

## Examples

**Response**

```json
{
  "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
}
```

**SDK Code**

```python
import requests

url = "https://api.aventure.vc/v1/entities/entityId/people/1"

headers = {"X-Client-Secret": "<apiKey>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript
const url = 'https://api.aventure.vc/v1/entities/entityId/people/1';
const options = {method: 'GET', headers: {'X-Client-Secret': '<apiKey>'}};

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"
	"net/http"
	"io"
)

func main() {

	url := "https://api.aventure.vc/v1/entities/entityId/people/1"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("X-Client-Secret", "<apiKey>")

	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/entityId/people/1")

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

request = Net::HTTP::Get.new(url)
request["X-Client-Secret"] = '<apiKey>'

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.get("https://api.aventure.vc/v1/entities/entityId/people/1")
  .header("X-Client-Secret", "<apiKey>")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.aventure.vc/v1/entities/entityId/people/1', [
  'headers' => [
    'X-Client-Secret' => '<apiKey>',
  ],
]);

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

```csharp
using RestSharp;

var client = new RestClient("https://api.aventure.vc/v1/entities/entityId/people/1");
var request = new RestRequest(Method.GET);
request.AddHeader("X-Client-Secret", "<apiKey>");
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["X-Client-Secret": "<apiKey>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.aventure.vc/v1/entities/entityId/people/1")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

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()
```