---
title: "Get a strategy by share slug"
method: GET
path: "/strategies/{slug}"
tags: ["Strategies"]
---

# Get a strategy by share slug

`GET /strategies/{slug}`

Returns a shareable strategy resolved by its public share slug. Public and unlisted strategies are returned to any caller; a private strategy returns 404 unless the API key owner owns it. Requires strategies.read.

## Path parameters

- `slug` string, required — Strategy public share slug.

## Response `200`

The strategy.

- ApiStrategyEnvelope — Strategy plus a response timestamp.
  - `strategy` ApiStrategy, required — API-safe shareable strategy.
    - `id` string, required — Strategy ID.
    - `ownerId` string, required — Owning user ID.
    - `name` string, required — Strategy name.
    - `description` string, nullable, required — Author description, when set.
    - `game` string, required — Game slug the strategy targets.
    - `mapId` string, required — Built-in map slug, or the sentinel "__custom" for a custom map.
    - `visibility` 'private' | 'unlisted' | 'public', required — Strategy share visibility setting.
    - `shareSlug` string, required — Public share slug.
    - `mapRotation` number, required — Map render orientation in degrees (0, 90, 180, or 270).
    - `playbackLoop` boolean, required — Whether frame playback wraps from the last stage to the first.
    - `stages` ApiStrategyStage[], required
      - `id` string, required — Stable stage id within the strategy.
      - `label` string, nullable, required — Author stage label, when set.
      - `durationMs` integer, required — Stage playback duration in milliseconds.
    - `stageCount` integer, required
    - `previewUrl` string, nullable, required — Freshly signed preview image URL, when a preview has been rendered.
    - `createdAt` string, nullable, required — ISO 8601 timestamp.
    - `updatedAt` string, nullable, required — ISO 8601 timestamp.
  - `timestamp` string, required — ISO 8601 timestamp.

## Other responses

- `401` — Missing or invalid API key.
- `403` — API key lacks the required permission.
- `404` — Resource not found.
- `429` — Rate limited.
- `500` — Internal server error.

---

[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/versions/2ffe8fb53b7d/schema)
