---
title: "Publish a match"
method: POST
path: "/matches/{matchId}/publish"
tags: ["My Matches"]
---

# Publish a match

`POST /matches/{matchId}/publish`

## Request

- Base URL: `https://teambattles.gg/api/v1`
- URL: `https://teambattles.gg/api/v1/matches/{matchId}/publish`
- Auth: HTTP bearer

Publishes a draft match as the personal API key owner, making it visible for acceptance. The owner must be the match creator or a captain, co-captain, or org owner of the creating team, and the match must still be a draft. Requires matches.user_matches:read-write and API writes access. Supports an optional `Idempotency-Key` header for safe retries.

## Path parameters

- `matchId` string, required: Match ID.

## Response `200`

The match was published successfully.

- PublishMatchResponse
  - `success` true, required
  - `timestamp` string, required: Response generation time (ISO 8601).

## Other responses

- `400`: Bad request (invalid body, cursor, limit, or date).
- `401`: Missing or invalid API key.
- `403`: API key lacks the required permission.
- `404`: Resource not found.
- `429`: Rate limited.
- `500`: Internal server error.

## Changes

- **2026-06-24** `fd9c94372431`: 1 info
  - endpoint added
- **2026-06-04** `f22bd61fd595`: 1 breaking
  - api path removed without deprecation

[Operation history](https://skmtc.dev/teambattles/apis/teambattles-api/changes/matches/:matchId/publish/post.md)

---

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