---
title: "Token versions"
method: GET
path: "/v5/point-in-time/token-versions/{tokenId}"
tags: ["Point-in-Time History"]
---

# Token versions

`GET /v5/point-in-time/token-versions/{tokenId}`

## Request

- Base URL: `https://api.tokenomist.ai`
- URL: `https://api.tokenomist.ai/v5/point-in-time/token-versions/{tokenId}`
- Auth: API key in header `x-api-key`

Every project version of a token's unlock schedule: when each was in force, what changed, and the sources behind it, sorted by `historyOrder` ascending. Corrections are folded into the project version they follow.

## Path parameters

- `tokenId` string, required

## Query parameters

- `start` string, date
- `end` string, date
- `page` integer
- `pageSize` integer

## Response `200`

Successful response

- object
  - `metadata` PaginatedMetadata
    - `queryDate` string, date-time: Timestamp of the query
    - `credit` Credit: Optional quota state for the calling account, returned on most authenticated responses (both success and error). Treat it as optional: it may be absent on unauthenticated requests, demo/playground responses, and briefly right after a monthly reset. `used` is near-real-time and may lag the true count by a request or two.
      - `used` integer: Successful requests (status below 400) made by your account, across all its keys, since the start of the month; errors use no credit. May lag by a request or two.
      - `limit` integer: The plan's request quota for the window.
      - `resetAt` string, date-time: When the quota resets: the 1st of next month, 00:00 UTC (RFC 3339).
    - `page` integer: Current page number (1-based). 1 on an empty result.
    - `pageSize` integer: Rows per page (20 by default).
    - `totalPages` integer: Number of pages for this query (1 on an empty result).
    - `total` integer: Number of rows across all pages. Left out when the result is empty.
  - `status` boolean
  - `data` HistoryVersion[]
    - `id` string: Permanent version id: `{tokenId}-p-{id}`. The prefix is Tokenomist's own token id, usually the path `tokenId` (not for every token, for example `galxe` versions start with `project-galaxy`). Store it as returned.
    - `tokenId` string: The tokenId you requested (slug). The prefix of id is Tokenomist's own token id and can differ.
    - `historyOrder` integer: Position on the project timeline (1 = oldest). It can shift when an earlier version is added later.
    - `status` 'current' | 'previous': Relative to now, not asOf. current: the latest project version of a token that is live today. previous: any other version.
    - `validFrom` string, date-time: When the version came into force: its announcement date, else its first publish on Tokenomist
    - `validFromBasis` 'stated_in_document' | 'onchain' | 'url' | 'archive_first_seen' | 'first_published': How a project version's start date was established. `stated_in_document`: the vote or announcement states the time. `onchain`: a governance proposal's voting end on chain. `url`: the time encoded in the announcement's link. `archive_first_seen`: the first web archive capture (an upper bound). `first_published`: no dated announcement, so the start is the first publish on Tokenomist (public no later than then).
    - `validUntil` string, date-time, nullable: The next project version's start. Null for the latest version. It can be before `validFrom` when the next version's announcement is dated earlier.
    - `disclosedAt` string, date-time: When the decision became public (the same instant as `validFrom`)
    - `previousVersionId` string, nullable: The previous project version
    - `change` HistoryChange: What changed in this project version compared with the previous one
      - `category` 'baseline' | 'project_decision': `baseline` on the first version, `project_decision` on later ones
      - `title` string, nullable: Short title of the change, from the version's changelog.
      - `description` string, nullable: What changed in the releases
      - `basis` 'project_disclosure': `project_disclosure`: a dated public decision
    - `changeReferences` HistoryChangeReference[]: Sources for the change. A private source appears only as {"name": "Private source", "private": true}.
      - `name` string: Title of the source.
      - `url` string: Link to the source. Left out when unknown.
      - `sourceType` string: Kind of source, for example whitepaper, tokenomics_doc, official_blog, official_social, governance_forum or governance_vote. Left out when unknown.
      - `sourceDate` string, date-time: Present only where the date is stated in the source, on chain or archive-dated
      - `private` boolean: Present and true for a non-public source
    - `listedMethod` 'INTERNAL' | 'AI' | 'EXTERNAL': How the data was listed: INTERNAL (Tokenomist research from official sources or on-chain data), AI (AI-listed) or EXTERNAL (submitted by the project). Left out when the version's content is unknown.
    - `dataSource` string: Where the version's schedule comes from: Whitepaper, Onchain, AI-Listing, Self-Listed or TokenUnlocks. Empty when unknown.

## Other responses

- `400`: Error. `400 INVALID_AS_OF`: `asOf` is invalid or in the future. `400 INVALID_PARAMETER`: another parameter is invalid. `403 PLAN_NOT_ELIGIBLE`: your plan does not include the version selector on this endpoint, or `asOf` / `versionId` is outside your plan's range (a 403 without `errorCode` means your plan does not include the endpoint). `404 TOKEN_NOT_FOUND`, `404 NO_VERSION_AT_AS_OF` (no project version in force at `asOf`), `404 VERSION_NOT_FOUND` (`versionId` does not belong to this token). `422 INVALID_PARAMETER`: `asOf` and `versionId` together, or `start` / `end` outside your plan's window. `429` (no `errorCode`): rate limit or monthly credit quota, as in v5. `503 SERVICE_UNAVAILABLE`: retry shortly. Errors use no credit.
- `403`: Error. `400 INVALID_AS_OF`: `asOf` is invalid or in the future. `400 INVALID_PARAMETER`: another parameter is invalid. `403 PLAN_NOT_ELIGIBLE`: your plan does not include the version selector on this endpoint, or `asOf` / `versionId` is outside your plan's range (a 403 without `errorCode` means your plan does not include the endpoint). `404 TOKEN_NOT_FOUND`, `404 NO_VERSION_AT_AS_OF` (no project version in force at `asOf`), `404 VERSION_NOT_FOUND` (`versionId` does not belong to this token). `422 INVALID_PARAMETER`: `asOf` and `versionId` together, or `start` / `end` outside your plan's window. `429` (no `errorCode`): rate limit or monthly credit quota, as in v5. `503 SERVICE_UNAVAILABLE`: retry shortly. Errors use no credit.
- `404`: Error. `400 INVALID_AS_OF`: `asOf` is invalid or in the future. `400 INVALID_PARAMETER`: another parameter is invalid. `403 PLAN_NOT_ELIGIBLE`: your plan does not include the version selector on this endpoint, or `asOf` / `versionId` is outside your plan's range (a 403 without `errorCode` means your plan does not include the endpoint). `404 TOKEN_NOT_FOUND`, `404 NO_VERSION_AT_AS_OF` (no project version in force at `asOf`), `404 VERSION_NOT_FOUND` (`versionId` does not belong to this token). `422 INVALID_PARAMETER`: `asOf` and `versionId` together, or `start` / `end` outside your plan's window. `429` (no `errorCode`): rate limit or monthly credit quota, as in v5. `503 SERVICE_UNAVAILABLE`: retry shortly. Errors use no credit.
- `429`: Error. `400 INVALID_AS_OF`: `asOf` is invalid or in the future. `400 INVALID_PARAMETER`: another parameter is invalid. `403 PLAN_NOT_ELIGIBLE`: your plan does not include the version selector on this endpoint, or `asOf` / `versionId` is outside your plan's range (a 403 without `errorCode` means your plan does not include the endpoint). `404 TOKEN_NOT_FOUND`, `404 NO_VERSION_AT_AS_OF` (no project version in force at `asOf`), `404 VERSION_NOT_FOUND` (`versionId` does not belong to this token). `422 INVALID_PARAMETER`: `asOf` and `versionId` together, or `start` / `end` outside your plan's window. `429` (no `errorCode`): rate limit or monthly credit quota, as in v5. `503 SERVICE_UNAVAILABLE`: retry shortly. Errors use no credit.
- `503`: Error. `400 INVALID_AS_OF`: `asOf` is invalid or in the future. `400 INVALID_PARAMETER`: another parameter is invalid. `403 PLAN_NOT_ELIGIBLE`: your plan does not include the version selector on this endpoint, or `asOf` / `versionId` is outside your plan's range (a 403 without `errorCode` means your plan does not include the endpoint). `404 TOKEN_NOT_FOUND`, `404 NO_VERSION_AT_AS_OF` (no project version in force at `asOf`), `404 VERSION_NOT_FOUND` (`versionId` does not belong to this token). `422 INVALID_PARAMETER`: `asOf` and `versionId` together, or `start` / `end` outside your plan's window. `429` (no `errorCode`): rate limit or monthly credit quota, as in v5. `503 SERVICE_UNAVAILABLE`: retry shortly. Errors use no credit.

## Changes

- **2026-11-03** `37c15ea7bdbd`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/tokenomist/apis/tokenomist-api/changes/v5/point-in-time/token-versions/:tokenId/get.md)

---

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