> ## Documentation Index
> Fetch the complete documentation index at: https://docs.glider.fi/llms.txt
> Use this file to discover all available pages before exploring further.

# Admin Strategy Curation

> Internal-only endpoints for managing the curated strategy discovery board

These endpoints manage the hand-picked strategy set served by
`GET /v2/discovery/strategies?collection=curated`. The curated board is read
live, so changes take effect immediately — no deploy or snapshot cycle.

## Auth

All routes are protected by the platform admin token:

* `Authorization: Bearer <admin-token>`
* `Content-Type: application/json`

## List Active Curation Entries

`GET /v1/admin/strategy-curation`

Returns every active curation row (including rows outside their display
window), in editorial order.

Response:

```json theme={null}
{
  "success": true,
  "data": {
    "entries": [
      {
        "id": 12,
        "strategyId": "01KVXD93001RE2NVTRT8A66C1C",
        "position": 0,
        "isActive": true,
        "startsAt": null,
        "endsAt": null,
        "note": "launch partner",
        "updatedBy": "ops@glider.fi",
        "createdAt": "2026-07-01T00:00:00.000Z",
        "updatedAt": "2026-07-01T00:00:00.000Z"
      }
    ]
  }
}
```

## Add A Strategy To The Curated Board

`POST /v1/admin/strategy-curation`

`strategyId` is the public strategy id (the legacy blueprint id, e.g.
`01KVXD93001RE2NVTRT8A66C1C`). Only public, mirrorable strategies can be
curated — the curated read filters on both, so anything else would silently
never appear.

Request:

```json theme={null}
{
  "strategyId": "01KVXD93001RE2NVTRT8A66C1C",
  "position": 0,
  "startsAt": "2026-08-01T00:00:00Z",
  "endsAt": "2026-09-01T00:00:00Z",
  "note": "sponsored slot",
  "updatedBy": "ops@glider.fi"
}
```

* `position` (optional, default `0`): editorial order, lower sorts first
* `startsAt` / `endsAt` (optional): display window; omit either side for
  open-ended. `endsAt` must be after `startsAt`
* `note` (optional): internal rationale
* `updatedBy` (required): actor for the audit trail

Response: the created entry, in the same shape as list entries.

## Remove A Strategy From The Curated Board

`DELETE /v1/admin/strategy-curation/:strategyId`

Deactivates the strategy's active curation row (rows are never hard-deleted).
The same strategy can be re-added later with a new `POST`.

Request:

```json theme={null}
{
  "updatedBy": "ops@glider.fi"
}
```

Response: the deactivated entry.

## Errors

* `400`: validation failure, non-public strategy, non-mirrorable strategy, or
  an inverted display window
* `401`: missing or invalid admin token
* `404`: unknown `strategyId`, or no active curation row to deactivate
* `409`: strategy is already actively curated (deactivate first to re-add)
