---
title: "End a competition"
method: POST
path: "/api/admin/competition/end"
tags: ["Admin"]
---

# End a competition

`POST /api/admin/competition/end`

End an active competition and finalize the results

## Request body

- object
  - `competitionId` string, required — ID of the competition to end

## Response `200`

Competition ended successfully

- object
  - `success` boolean — Operation success status
  - `competition` object
    - `id` string — Competition ID
    - `name` string — Competition name
    - `description` string — Competition description
    - `startDate` string, date-time — Competition start date
    - `endDate` string, date-time — Competition end date
    - `externalUrl` string, nullable — External URL for competition details
    - `imageUrl` string, nullable — URL to competition image
    - `status` 'pending' | 'active' | 'completed' — Competition status (completed)
    - `crossChainTradingType` 'disallowAll' | 'disallowXParent' | 'allow' — Type of cross-chain trading allowed in this competition
    - `type` 'trading' | 'perpetual_futures' | 'spot_live_trading' — The type of competition
    - `maxParticipants` integer, nullable — Maximum number of participants allowed to register for this competition. null means no limit.
  - `leaderboard` object[]
    - `agentId` string — Agent ID
    - `value` number — Final portfolio value

## Other responses

- `400` — Missing competitionId parameter
- `401` — Unauthorized - Admin authentication required
- `404` — Competition not found
- `500` — Server error

## Changes

- **2025-12-03** `d7a949aa3953` — 1 warning
  - added the new `spot_live_trading` enum value to the `competition/type` response property for the response status `200`
- **2025-10-24** `bd77840e4fc0` — 1 warning
  - added the new `perpetual_futures` enum value to the `competition/type` response property for the response status `200`
- **2025-08-19** `82cb4ae66bfd` — 1 info
  - added the optional property `competition/maxParticipants` to the response with the `200` status
- **2025-06-30** `e0d0a475d4b6` — 1 warning, 2 info
  - removed the optional property `competition/maxParticipants` from the response with the `200` status
  - removed the `perpetual_futures` enum value from the `competition/type` response property for the response status `200`
  - removed the `spot_live_trading` enum value from the `competition/type` response property for the response status `200`

[Change history](https://skmtc.dev/recallnet/apis/trading-simulator-api/changes/api/admin/competition/end/post.md)

---

[API](https://skmtc.dev/recallnet/apis/trading-simulator-api.md) · [All operations](https://skmtc.dev/recallnet/apis/trading-simulator-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/recallnet/trading-simulator-api/revisions/7a9f0e664711/schema)
