---
title: "Submit a map score"
method: POST
path: "/matches/{matchId}/scores"
tags: ["My Matches"]
---

# Submit a map score

`POST /matches/{matchId}/scores`

Submit or overwrite a map score for a match. Only a captain, co-captain, or org owner of a participating team can submit. Requires the matches.team_matches:read-write permission.

## Path parameters

- `matchId` string, required — Match id.

## Request body

- SubmitScoreBody — Map score submission payload for a single map.
  - `mapIndex` integer, required — Zero-based map index. Must be a non-negative integer.
  - `mapId` string, required — Map identifier string (e.g. dust2).
  - `creatorTeamScore` integer, required — Creator team score (integer, 0-1000).
  - `opponentTeamScore` integer, required — Accepted/opponent team score (integer, 0-1000).
  - `screenshotUrls` string[] — Optional external screenshot URLs (validated as public https server-side, max 10). Prefer screenshotStorageIds for validated blobs.
  - `screenshotStorageIds` string[] — Optional Convex storage ids from POST /api/v1/uploads/image-url (validated for size + content-type, max 10; preferred over screenshotUrls).

## Response `200`

Map score submitted.

- ScoreSubmissionResult — Result of submitting or confirming a map score.
  - `success` boolean, required
  - `action` string, required — Action performed, e.g. "submitted" or "confirmed".
  - `mapIndex` integer, required — Zero-based map index that was affected.
  - `scoreStatus` string, required — Resulting score status, e.g. PENDING or CONFIRMED.

## 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.

---

[API](https://skmtc.net/teambattles/apis/teambattles-api.md) · [All operations](https://skmtc.net/teambattles/apis/teambattles-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/teambattles/teambattles-api/revisions/2ffe8fb53b7d/schema)
