# List my submissions

```http
GET /api/public/v1/competitions/acc/submissions/mine
```

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

Lists the entire current team’s private ACC batch history, including submissions created by other members.

## Query parameters

| Parameter | Type and rules                                           |
| :-------- | :------------------------------------------------------- |
| `limit`   | Integer `1`–`100`; default `20`.                         |
| `cursor`  | Opaque string from `nextCursor`; omit on the first page. |

Rows are ordered by `receivedAt` descending, then submission ID descending. The first page fixes an upper submission-ID bound so newly admitted batches do not shift subsequent pages. Status and results can still update during traversal. Start again without a cursor to see new batches.

A cursor is bound to the current team and operation and expires 15 minutes after issuance. Team changes invalidate its context; do not transfer it to another team's history. All active teammates can read the same team history. See [Team ownership](../acc.md#team-ownership) for enrollment and membership requirements.

## Response fields

| Field        | Type and meaning                                                              |
| :----------- | :---------------------------------------------------------------------------- |
| `items`      | [Submission[]](../acc.md#submission).                                         |
| `nextCursor` | `string` or `null`; null ends the traversal.                                  |
| `totalCount` | Non-negative `integer` — Team records within the first page's upper ID bound. |

## Example request

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

curl "$SAIR_API_BASE/competitions/acc/submissions/mine?limit=20" \
  -H "Authorization: Bearer $SAIR_API_KEY"
```

## Example response

This example shows the batch from [Submit solutions](./submit-solutions.md#example-request) while it is queued. Its verification status and results can change in later reads.

```json
{
  "ok": true,
  "data": {
    "items": [
      {
        "submissionId": "142",
        "competitionId": "acc",
        "teamId": "team-17",
        "submittedBySairId": "sair-example-member",
        "status": "queued",
        "receivedAt": "2026-09-10T12:00:00.123456Z",
        "updatedAt": "2026-09-10T12:00:00.123456Z",
        "solutionCount": 2,
        "results": [],
        "errorMessage": null,
        "meta": { "description": "Search run notes" }
      }
    ],
    "nextCursor": null,
    "totalCount": 1
  }
}
```

## Errors

| HTTP  | Code             | Meaning                                                                  |
| :---: | :--------------- | :----------------------------------------------------------------------- |
| `400` | `E_MALFORMED`    | Invalid query parameter, including `limit` outside `1`–`100`.            |
| `400` | `INVALID_CURSOR` | Unknown, mismatched, or expired team-history cursor. Restart without it. |
| `403` | `NOT_ENROLLED`   | ACC enrollment is incomplete.                                            |
| `403` | `TEAM_REQUIRED`  | No active ACC team.                                                      |

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