# Get my standing

```http
GET /api/public/v1/competitions/mathematics-distillation-challenge-equational-theories-stage2/leaderboard/me
```

**Scope**: `competition.read`.

Returns the caller's current active team's official standing for one required `(track, modelId)` leaderboard. Stage 2 has no combined overall standing; query each catalog pair separately.

Any active team member may read the standing. The owner role is not required.

## Query parameters

| Parameter | Type | Required | Description |
| :-------- | :--- | :------: | :---------- |
| `track` | string | Yes | Exact, case-sensitive track ID from the competition detail catalog. |
| `modelId` | string | Yes | Exact, case-sensitive model ID from the competition detail catalog. |

Fetch valid values from [Get competition detail](./get-competition-detail.md). Use [Get leaderboard](./get-leaderboard.md) to traverse every team in the same pair.

## Example request

```bash
curl "https://api.sair.foundation/api/public/v1/competitions/mathematics-distillation-challenge-equational-theories-stage2/leaderboard/me?track=solo&modelId=openai-gpt-oss-120b" \
  -H "Authorization: Bearer $SAIR_API_KEY"
```

## Example response

```json
{
  "ok": true,
  "data": {
    "entry": {
      "rank": 1,
      "teamId": "teamv2_19ac4fb862d64502ae7837852e18fb4a",
      "teamNumber": "MDC2-T00003",
      "teamName": "Lean Explorers",
      "score": 0.9625,
      "acceptedProblems": 385,
      "totalProblems": 400,
      "evaluatedSolverSha256": "7890abcdef1234567890abcdef1234567890abcdef1234567890abcdef123456",
      "teamDetails": {
        "members": [
          {
            "name": "Alice Example",
            "avatarUrl": "https://id.sair.foundation/avatars/alice.png",
            "email": "alice@example.com"
          }
        ]
      }
    },
    "meta": {
      "track": "solo",
      "modelId": "openai-gpt-oss-120b",
      "published": true,
      "publishedAt": "2026-10-01T00:00:00Z",
      "batch": {
        "id": "s2eval_01JSTAGE2FINAL000000000001",
        "finishedAt": "2026-09-30T22:15:00Z",
        "cohortSha256": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
        "problemManifestSha256": "abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789",
        "environmentSha256": "fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210",
        "problemCount": 400,
        "scoringVersion": "mdc-stage2-score-v1"
      }
    }
  }
}
```

## Response fields

| Field | Type | Description |
| :---- | :--- | :---------- |
| `entry` | [Leaderboard entry](./get-leaderboard.md#leaderboard-entry) \| null | Caller team's row in this pair, or `null` when no current standing is available. |
| `meta.track` | string | Track selected by the request. |
| `meta.modelId` | string | Model selected by the request. |
| `meta.published` | boolean | Whether official results for this leaderboard are public. |
| `meta.publishedAt` | string \| null | ISO 8601 UTC publication time, or `null` before publication. |
| `meta.batch` | [Official evaluation batch](./get-leaderboard.md#official-evaluation-batch) \| null | Immutable evaluation snapshot behind the standing, or `null` before publication. |

## Standing behavior

`entry: null` has several valid meanings. Use `meta.published` to distinguish publication state:

| State | `entry` | `meta.published` | `meta.batch` |
| :---- | :-----: | :--------------: | :----------- |
| Results are not published | `null` | `false` | `null` |
| Results are published, but the caller has no active team | `null` | `true` | Official batch object |
| Results are published, but the active team has no evaluated row for this pair | `null` | `true` | Official batch object |
| Results are published and the active team has an evaluated row | Leaderboard entry | `true` | Official batch object |

- Team membership is evaluated when this request is made. A participant who has left the team no longer receives that team's standing.
- The standing is tied to the published evaluation snapshot. Replacing the team's current solver after the batch was sealed does not change `entry`; a later published batch may evaluate the replacement.
- A non-null `entry` has exactly the same fields and scoring semantics as an item from [Get leaderboard](./get-leaderboard.md#leaderboard-entry). `teamDetails` follows the shared [privacy rules](../../competitions.md#leaderboard-team-details-and-privacy).

## Errors

| HTTP | Code | When |
| :---: | :--- | :--- |
| `400` | `MALFORMED_BODY` | `track` or `modelId` is missing. |
| `404` | `NOT_FOUND` | The competition is not publicly visible. |
| `422` | `RESOURCE_FIELD_INVALID` | `track` or `modelId` is not an exact current catalog value. |

Shared authentication, scope, and rate-limit errors are documented in [Errors](../../../errors.md).
