---
title: "Get an asset"
method: GET
path: "/v1/assets/{asset_id}"
tags: ["assets"]
---

# Get an asset

`GET /v1/assets/{asset_id}`

## Request

- Base URL: `https://api.angellist.com`
- URL: `https://api.angellist.com/v1/assets/{asset_id}`
- Auth: OAuth 2
  - Authorization code: `https://gateway.angellist.com/oauth/authorize`
  - Client credentials
  - Token URL: `https://gateway.angellist.com/oauth/token` scopes: `assets:read`

Returns a single asset by ID. The `vehicle` query parameter is required for authorization — the caller must have access to the vehicle, and the asset must appear on that vehicle's most recent financial statement's schedule of investments.

**Supported vehicle types: `spv`, `ruv`, `venture_fund`, and `institutional_fund`.** Calls with a `vehicle` belonging to a `rolling_fund_quarter` return 404.

## Path parameters

- `asset_id` string, required

## Query parameters

- `vehicle` string, required

## Response `200`

The asset.

- Asset: A single portfolio position held by a vehicle, read from the schedule of investments on the vehicle's most recent financial statement. Conventions: each monetary value is an `{amount, currency}` object carrying its own currency — the remaining cost basis (`remaining_cost_basis`) and the held mark (`unrealized_value`). These can differ — e.g. a USD wire into a foreign-domiciled fund that holds the position in INR. `date_purchased` is unix epoch seconds. Source-of-truth policy: performance metrics live on the financial statement, not on this row. When the caller needs MOIC, TVPI, DPI, RVPI, IRR, NAV, fund-level paid-in / called / distributed, J-curve, or any gross-vs.-net-of-fees/carry cut, call `/v1/financial_statements` for the row's vehicle and read the canonical figure straight out of the body. Do NOT reconstruct performance metrics by combining or aggregating these values — the statement accounts for fees, carry, recyclables, FX, and cross-class reconciliation that the raw fields don't.
  - `accrued_interest` CurrencyAmount: A monetary amount in a single currency. `amount` is an integer in the currency's smallest unit (cents for USD; 100 = $1.00) — never whole dollars. `formatted` is the same value rendered in whole units for display.
    - `amount` integer, required: Signed amount in the smallest unit of the currency (cents for USD; 100 = $1.00).
    - `currency` string, required: Uppercase ISO 4217 currency code, optionally suffixed with a digit `n` for AngelList high-precision currencies, which have `n - 1` fraction digits: `9906000` in `CAD8` is CA$0.9906.
    - `formatted` string, nullable, required: The amount rendered as a human-readable string in whole currency units (e.g. `$1,000,000.00` for `amount: 100000000, currency: USD`). Authoritative for magnitude; use `amount` for arithmetic. `null` when the currency has no rendering data — the value is never guessed.
  - `asset_class` AssetClassRef: A reference to an asset class by id. The id is the same one `/v1/asset_classes` uses, stable across assets. Not expandable.
    - `id` string, required: Identifier of the referenced asset class.
  - `asset_events` AssetEvent[]: Realization and conversion events recorded against the position, ordered oldest first. Each event aggregates the proceeds realized on a single date for one event type. Empty when the position has never been partially or fully realized.
    - `date` integer, nullable: Date the realization occurred. Measured in seconds since the Unix epoch. Omitted when no date was recorded.
    - `num_units_liquidated` number, double, nullable: Number of units or shares disposed of in this event. Omitted when no unit count was recorded.
    - `portfolio_interest` CurrencyAmount: A monetary amount in a single currency. `amount` is an integer in the currency's smallest unit (cents for USD; 100 = $1.00) — never whole dollars. `formatted` is the same value rendered in whole units for display.
      - `amount` integer, required: Signed amount in the smallest unit of the currency (cents for USD; 100 = $1.00).
      - `currency` string, required: Uppercase ISO 4217 currency code, optionally suffixed with a digit `n` for AngelList high-precision currencies, which have `n - 1` fraction digits: `9906000` in `CAD8` is CA$0.9906.
      - `formatted` string, nullable, required: The amount rendered as a human-readable string in whole currency units (e.g. `$1,000,000.00` for `amount: 100000000, currency: USD`). Authoritative for magnitude; use `amount` for arithmetic. `null` when the currency has no rendering data — the value is never guessed.
    - `realized_gain_loss` CurrencyAmount: A monetary amount in a single currency. `amount` is an integer in the currency's smallest unit (cents for USD; 100 = $1.00) — never whole dollars. `formatted` is the same value rendered in whole units for display.
      - `amount` integer, required: Signed amount in the smallest unit of the currency (cents for USD; 100 = $1.00).
      - `currency` string, required: Uppercase ISO 4217 currency code, optionally suffixed with a digit `n` for AngelList high-precision currencies, which have `n - 1` fraction digits: `9906000` in `CAD8` is CA$0.9906.
      - `formatted` string, nullable, required: The amount rendered as a human-readable string in whole currency units (e.g. `$1,000,000.00` for `amount: 100000000, currency: USD`). Authoritative for magnitude; use `amount` for arithmetic. `null` when the currency has no rendering data — the value is never guessed.
    - `total_proceeds` CurrencyAmount: A monetary amount in a single currency. `amount` is an integer in the currency's smallest unit (cents for USD; 100 = $1.00) — never whole dollars. `formatted` is the same value rendered in whole units for display.
      - `amount` integer, required: Signed amount in the smallest unit of the currency (cents for USD; 100 = $1.00).
      - `currency` string, required: Uppercase ISO 4217 currency code, optionally suffixed with a digit `n` for AngelList high-precision currencies, which have `n - 1` fraction digits: `9906000` in `CAD8` is CA$0.9906.
      - `formatted` string, nullable, required: The amount rendered as a human-readable string in whole currency units (e.g. `$1,000,000.00` for `amount: 100000000, currency: USD`). Authoritative for magnitude; use `amount` for arithmetic. `null` when the currency has no rendering data — the value is never guessed.
    - `type` 'realization' | 'conversion', required: Kind of disposition. A `realization` is a cash exit; a `conversion` exchanges the position for another instrument and carries no cash proceeds.
  - `company` CompanyRef: A reference to a company by id. The `cmpny_` prefix encodes the type, so no `object` field is needed. The id is the same one `/v1/companies` uses, stable across assets and deployments. Not expandable.
    - `id` string, required: Identifier of the referenced company.
  - `date_purchased` integer: Time at which the position was purchased. Measured in seconds since the Unix epoch. Omitted for rows where no purchase date was recorded.
  - `id` string, required: Unique identifier for this asset position. The underlying record id is encoded through a salted Sqid alphabet so the internal database identifier is never on the wire.
  - `interest_rate_basis_points` integer: Stated interest rate of the instrument, in basis points (an 8% note is `800`). Only present for interest-bearing instruments such as convertible notes.
  - `investment_type` string: Instrument type of the position as recorded on the schedule of investments — e.g. `Preferred Stock`, `SAFE`, `Convertible Note`. Free-form text, not a closed enum. Omitted when no type was recorded.
  - `last_valuation_action_date` integer: Effective date of the most recent valuation applied to the position. Measured in seconds since the Unix epoch. Only present for actively held positions on the schedule of investments; omitted for fully realized positions and when the position has no recorded valuation.
  - `livemode` boolean, required: Whether this object exists in live mode (`true`) or test mode (`false`).
  - `object` 'asset', required: Object type identifier.
  - `remaining_cost_basis` CurrencyAmount: A monetary amount in a single currency. `amount` is an integer in the currency's smallest unit (cents for USD; 100 = $1.00) — never whole dollars. `formatted` is the same value rendered in whole units for display.
    - `amount` integer, required: Signed amount in the smallest unit of the currency (cents for USD; 100 = $1.00).
    - `currency` string, required: Uppercase ISO 4217 currency code, optionally suffixed with a digit `n` for AngelList high-precision currencies, which have `n - 1` fraction digits: `9906000` in `CAD8` is CA$0.9906.
    - `formatted` string, nullable, required: The amount rendered as a human-readable string in whole currency units (e.g. `$1,000,000.00` for `amount: 100000000, currency: USD`). Authoritative for magnitude; use `amount` for arithmetic. `null` when the currency has no rendering data — the value is never guessed.
  - `remaining_shares` number, double: Number of shares (or units) still held for the position. May be fractional. Omitted for positions without a share count — e.g. SAFEs and convertible notes.
  - `unrealized_value` CurrencyAmount: A monetary amount in a single currency. `amount` is an integer in the currency's smallest unit (cents for USD; 100 = $1.00) — never whole dollars. `formatted` is the same value rendered in whole units for display.
    - `amount` integer, required: Signed amount in the smallest unit of the currency (cents for USD; 100 = $1.00).
    - `currency` string, required: Uppercase ISO 4217 currency code, optionally suffixed with a digit `n` for AngelList high-precision currencies, which have `n - 1` fraction digits: `9906000` in `CAD8` is CA$0.9906.
    - `formatted` string, nullable, required: The amount rendered as a human-readable string in whole currency units (e.g. `$1,000,000.00` for `amount: 100000000, currency: USD`). Authoritative for magnitude; use `amount` for arithmetic. `null` when the currency has no rendering data — the value is never guessed.
  - `vehicle` object, required: The vehicle this asset belongs to.
    - `id` string, required: Encoded vehicle identifier.

## Other responses

- `400`: The request was malformed or contained invalid parameters.
- `401`: Authentication required or token invalid.
- `403`: The authenticated user does not have permission to access this resource, or the vehicle's data is not available through the API. Vehicle-scoped financial-data endpoints return code `not_available` when a vehicle's data isn't served through the API yet — the API returns verified data or none, never partial data. One account can hold a mix of covered and uncovered vehicles; support for uncovered vehicles is on the roadmap and will be added in the coming months.
- `404`: Resource not found.
- `429`: Rate limit exceeded.
- `500`: An unexpected error occurred.

---

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