---
title: "Get a single deployment record"
method: GET
path: "/v1/projects/{project_id}/deployments/{deployment_id}"
tags: ["deployments"]
---

# Get a single deployment record

`GET /v1/projects/{project_id}/deployments/{deployment_id}`

## Request

- Base URL: `https://api.pioneer.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.pioneer.ai/v1/projects/{project_id}/deployments/{deployment_id}`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer
- TypeScript: <https://skmtc.dev/pioneer/apis/brain-api/docs/v1/projects/:project_id/deployments/:deployment_id/get.ts> (a function with typed inputs; its response is checked against the schema)

Fetch a specific deployment history record.

Args:
    project_id: Project the deployment belongs to.
    deployment_id: Deployment record ID.
    auth: Authenticated user.

Returns:
    DeploymentResponse for the record.

Raises:
    HTTPException: 403 if the user does not have access to the project;
        404 if the deployment is not found for this project.

## Path parameters

- `project_id` string, uuid, required
- `deployment_id` string, uuid, required

## Response `200`

Successful Response

- DeploymentResponse: A single deployment history record. A deployment targets exactly one of ``training_job_id`` or ``base_model``: the trained adapter that was activated, or the base catalog model that was activated when no adapter is in use. Attributes: id: Unique deployment record ID. project_id: The project whose active model was changed. training_job_id: Training job that was deployed (training-job shape). base_model: HuggingFace base model ID that was deployed (base-model shape). deployed_by: User ID who triggered the deployment. reason: Optional reason for the swap. deployed_at: When the swap occurred. experiment_id: Experiment whose agent promoted, when one did. finetune_plan_id: Plan revision that authorised the promotion. selection_evaluation_run_id: Evaluation Suite run the promotion was decided on. recipe_fingerprint: Digest of the promoted candidate's recipe. The four evidence fields are null for a promotion nobody recorded evidence for -- a human pressing promote, or the post-training auto-deploy. They are returned so the basis for a swap is readable after the fact rather than only at the moment it happens.
  - `id` string, required
  - `project_id` string, required
  - `training_job_id` string, nullable
  - `base_model` string, nullable
  - `deployed_by` string, required
  - `reason` string, nullable, required
  - `deployed_at` string, date-time, required
  - `experiment_id` string, nullable
  - `finetune_plan_id` string, nullable
  - `selection_evaluation_run_id` string, nullable
  - `recipe_fingerprint` string, nullable

## Other responses

- `422`: Validation Error

## Changes

- **2026-09-24** `0e5e86e2bae5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/pioneer/apis/brain-api/changes/v1/projects/:project_id/deployments/:deployment_id/get.md)

---

[API](https://skmtc.dev/pioneer/apis/brain-api.md) - [All operations](https://skmtc.dev/pioneer/apis/brain-api/llms.txt) - [OpenAPI document](https://skmtc.dev/pioneer/apis/brain-api/revisions/0e5e86e2bae5?raw)
