---
title: "Preview compose services"
method: POST
path: "/api/v1/deploy/application/preview-compose"
tags: ["Deploy"]
---

# Preview compose services

`POST /api/v1/deploy/application/preview-compose`

## Request

- Base URL: `http://:8080`
- URL: `http://:8080/api/v1/deploy/application/preview-compose`
- Auth: none declared

Preview compose services.

Auth: Required (bearer token).
Scope: Organization-scoped in authenticated context.
Side effects: May mutate server state.

## Headers

- `Accept` string

## Request body `*/*`

- PreviewComposeRequest: PreviewComposeRequest schema
  - `base_path` string, nullable: Base path within the repository
  - `branch` string, required: Git branch to preview
  - `dockerfile_path` string, nullable: Path to the Dockerfile
  - `repository` string, required: Numeric GitHub repository ID (get from GET /github-connector/repositories).

## Response `200`

OK

- PreviewComposeResponse: PreviewComposeResponse schema
  - `services` object[]
    - `port` integer, required: Port the service listens on
    - `service_name` string, required: Name of the compose service

## Other responses

- `400`: Bad Request _(validation or deserialization error)_
- `500`: Internal Server Error _(panics)_
- `default`

## Changes

- **2026-04-26** `09f18af670c4`: 2 breaking, 8 info
  - the request property `branch` became required
  - the request property `repository` became required
  - api tag `Deploy` added
  - api tag `api/v1/deploy` removed
  - …6 more
- **2026-04-02** `2beb810c5221`: 24 warning, 13 info
  - removed the optional property `detail` from the response with the `400` status (media type: application/json)
  - removed the optional property `detail` from the response with the `400` status (media type: application/xml)
  - removed the optional property `detail` from the response with the `500` status (media type: application/json)
  - removed the optional property `detail` from the response with the `500` status (media type: application/xml)
  - …33 more
- **2026-03-26** `e34b00e45318`: 8 breaking, 4 warning, 25 info
  - removed the required property `code` from the response with the `400` status (media type: application/json)
  - removed the required property `code` from the response with the `400` status (media type: application/xml)
  - removed the required property `code` from the response with the `500` status (media type: application/json)
  - removed the required property `code` from the response with the `500` status (media type: application/xml)
  - …33 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/nixopus/apis/nixopus-api/changes/api/v1/deploy/application/preview-compose/post.md)

---

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