---
title: "Retrieve prompt version"
method: POST
path: "/v1/private/prompts/versions/retrieve"
tags: ["Prompts"]
---

# Retrieve prompt version

`POST /v1/private/prompts/versions/retrieve`

Retrieve prompt version. When project_name is supplied the lookup is scoped to that project: a prompt belonging to a different project is never matched, and an unknown project name returns 404. Legacy prompts with no project are still resolved as a deprecated fallback, signalled by the X-Opik-Deprecation response header.

## Request body

- PromptVersionRetrieveDetail
  - `name` string, required
  - `commit` string
  - `environment` string — If provided, resolves to the version mapped to this environment for the prompt; mutually exclusive with commit and version_number
  - `version_number` string — If provided, resolves to the version with this sequential number (e.g. v3); mutually exclusive with commit and environment
  - `project_name` string — If provided, scopes the search to the specified project; prompts belonging to other projects are never matched, and an unknown project name returns 404. Legacy prompts that are not scoped to any project are still matched as a deprecated fallback, signalled by the X-Opik-Deprecation response header.

## Response `200`

OK

- PromptVersionDetail
  - `id` string, uuid — version unique identifier, generated if absent
  - `prompt_id` string, uuid
  - `commit` string — version short unique identifier, generated if absent. it must be 8 characters long
  - `version_number` string — sequential version number in the format v<N>; null for masks
  - `template` string, required
  - `metadata` JsonNodeDetail
  - `type` 'mustache' | 'jinja2' | 'python'
  - `version_type` 'prompt_version' | 'mask' — version type discriminator; defaults to prompt_version
  - `environment` string — Deprecated: use 'environments' instead
  - `environments` string[]
  - `change_description` string
  - `tags` string[]
  - `variables` string[]
  - `template_structure` 'text' | 'chat'
  - `created_at` string, date-time
  - `created_by` string

## Other responses

- `400` — Bad Request
- `404` — Not Found
- `422` — Unprocessable Content

## Changes

- **2026-05-28** `f59fc1819c0c` — 1 info
  - added the optional property `environment` to the response with the `200` status
- **2026-05-27** `3953a50a6a0e` — 1 warning, 1 info
  - removed the optional property `environment` from the response with the `200` status
  - added the optional property `environments` to the response with the `200` status
- **2026-05-20** `a98bd55ddc1e` — 2 info
  - added the new optional request property `version_number`
  - added the optional property `version_number` to the response with the `200` status
- **2026-05-19** `415a5d0ad31f` — 2 info
  - added the new optional request property `environment`
  - added the optional property `environment` to the response with the `200` status
- **2026-05-19** `f93aac27fb6e` — 9 warning, 4 info
  - removed the optional property `code` from the response with the `400` status
  - removed the optional property `code` from the response with the `404` status
  - removed the optional property `code` from the response with the `422` status
  - removed the optional property `details` from the response with the `400` status
  - …9 more

[Full history](https://skmtc.dev/comet-ml/apis/opik-rest-api/changes/v1/private/prompts/versions/retrieve/post.md)

---

[API](https://skmtc.dev/comet-ml/apis/opik-rest-api.md) · [All operations](https://skmtc.dev/comet-ml/apis/opik-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/comet-ml/apis/opik-rest-api/revisions/7e9b9ca95d8f?raw)
