# Get a submission

```http
GET /api/public/v1/competitions/acc/submissions/{submissionId}
```

**Scope**: `competition.read`. An API key is required.

Returns one private batch and its current verification results to an active member of its owning team.

## Path parameters

| Parameter      | Type and meaning                                                       |
| :------------- | :--------------------------------------------------------------------- |
| `submissionId` | `string` — ID from admission or team history; treat it as opaque text. |

## Response fields

The data object is a [Submission](../acc.md#submission). Poll `queued` or `running` batches with a bounded delay and honor read-tier limits. Stop on `complete` or `failed`. There is no batch cancellation or retry endpoint in this contract.

## Example request

```bash
export SAIR_API_BASE="https://api.sair.foundation/api/public/v1"

curl "$SAIR_API_BASE/competitions/acc/submissions/142" \
  -H "Authorization: Bearer $SAIR_API_KEY"
```

## Example response

The batch from [Submit solutions](./submit-solutions.md#example-request) has completed verification. Both solutions succeeded, and their results follow the input order. Its ID, receipt time, solution count, and note are unchanged.

```json
{
  "ok": true,
  "data": {
    "submissionId": "142",
    "competitionId": "acc",
    "teamId": "team-17",
    "submittedBySairId": "sair-example-member",
    "status": "complete",
    "receivedAt": "2026-09-10T12:00:00.123456Z",
    "updatedAt": "2026-09-10T12:00:02Z",
    "solutionCount": 2,
    "results": [
      {
        "challenge_id": "ac-08491",
        "problem": "ac",
        "ok": true,
        "length": 8
      },
      {
        "challenge_id": "sac-08491",
        "problem": "stable_ac",
        "ok": true,
        "length": 10
      }
    ],
    "errorMessage": null,
    "meta": { "description": "Search run notes" }
  }
}
```

## Errors

| HTTP  | Code        | Meaning                                                                                                                        |
| :---: | :---------- | :----------------------------------------------------------------------------------------------------------------------------- |
| `404` | `NOT_FOUND` | Absent or invalid ID, another team's record, or caller no longer active in the owning team. These cases are indistinguishable. |

See [shared errors](../acc.md#shared-errors) for authentication, scope, availability, and configuration errors.
