# Get a version **GET /v2/versions/{versionId}** Returns one version - 404 for any version GET /v2/versions would not list: a story's primary version, a version of a story that is not Live (draft, archived or deleted), or one in a folder the API key's creator cannot open. Returns everything a list row carries, plus `data` - the version's current variable values, in the same shape POST /v2/versions takes. To change a value without changing the link, send just the fields you want to change to POST /v2/versions/{versionId}; it merges them into these. The link password, if one is set, is never returned. ## Servers - Production API server: https://api.storydoc.com (Production API server) ## Authentication methods - Bearer auth ## Parameters ### Path parameters - **versionId** (string) The ID of the version ## Responses ### 200 The version #### Body: application/json (object) - **id** (string) Version ID - **title** (string | null) Version title - **status** (string) Accepted: the reader accepted it. Draft: unpublished, the link is off. Expired: past its expiry date. Live: otherwise. - **storyId** (string) The story (template) the version was created from - **storyTitle** (string | null) The story's title; null for a standalone version - **folder** (object | null) The folder the story is filed in, and who can open it; null at the root - **sender** (object | null) - **url** (string(uri) | null) Public URL for the version; null when it is a Draft - **shortUrl** (string(uri) | null) Shortened URL for the version - **editorUrl** (string(uri)) URL to edit the version in the Storydoc editor - **versionUrl** (string(uri)) URL to the version's details in the Storydoc platform - **isPublic** (boolean) True when the version never expires - **expireAt** (string(date-time) | null) When the link expires - **hasAcceptButton** (boolean) Whether the version has an Accept button - a proposal the reader can accept. Not accepted yet: true here with a status other than Accepted. - **acceptedAt** (string(date-time) | null) When the reader accepted it; null unless Accepted - **source** (string | null) How the version was created, e.g. Manual or API - **createdAt** (string(date-time)) - **updatedAt** (string(date-time)) - **data** (object) The version's current variable values - the same object POST /v2/versions takes as `data` ### 403 Authentication failed, the key is scoped to a different story, the member who created the key has left the organization, or a legacy org token has been replaced by a newer one #### Body: application/json (object) - **error** (string) - **code** (string) `VARIABLES_PLAN_REQUIRED` when the story uses variables above the account's plan; absent for authentication failures. - **requiredPlan** (string) With `VARIABLES_PLAN_REQUIRED`: the lowest plan that covers every blocked variable. - **variables** (array[object]) With `VARIABLES_PLAN_REQUIRED`: the blocked variables and the plan each needs. ### 404 Version not found #### Body: application/json (object) - **error** (string) ### 429 Too many requests #### Body: application/json (object) - **error** (string) ### 500 Internal server error #### Body: application/json (object) - **error** (string) - **errorId** (string) [Powered by Bump.sh](https://bump.sh)