Shipeasy
Flags experimentsApiOperations

List feature gates

Returns a single page of gates ordered by updated_at desc, id desc. Use the cursor query parameter to paginate.

Use case

Snapshot every gate in the project — for example to render an admin overview or to drive a CI check that asserts no gate is left at 100% in staging.

GET
/api/admin/gates

Authorization

bearerSdkKey
AuthorizationBearer <token>

Pass an admin SDK key as Authorization: Bearer sdk_admin_…. Mint via POST /api/admin/keys with type: "admin".

In: header

Query Parameters

limit?integer

Page size (1–500). Defaults to 100.

Default100
Range1 <= value <= 500
cursor?string

Opaque cursor returned in the previous page's next_cursor. Omit for the first page.

Header Parameters

X-Project-Id*string

Project the request operates on. Must match the project the SDK key belongs to.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://shipeasy.ai/api/admin/gates" \  -H "X-Project-Id: string"
{
  "data": [
    {
      "id": "gat_01j7w7m9q4hxbf6npe6s9zr3vc",
      "name": "checkout_v2",
      "enabled": 1,
      "rolloutPct": 5000,
      "rules": [
        {
          "attr": "country",
          "op": "in",
          "value": [
            "US",
            "CA",
            "GB"
          ]
        },
        {
          "attr": "plan",
          "op": "neq",
          "value": "free"
        }
      ],
      "salt": "9c1f4f1f2c0c4a5fa1c2b6d3e7c8e3a1",
      "title": "Checkout v2",
      "description": "New checkout flow. Pro users in US/CA/GB only.",
      "folder": "checkout",
      "groupName": "growth",
      "ownerEmail": "ana@example.com",
      "stack": null,
      "updatedAt": "2026-05-09T16:01:22.000Z"
    }
  ],
  "next_cursor": null
}
{
  "error": "string",
  "code": "string",
  "detail": "string"
}
{
  "error": "string",
  "code": "string",
  "detail": "string"
}
{
  "error": "string",
  "code": "string",
  "detail": "string"
}
{
  "error": "string",
  "code": "string",
  "detail": "string"
}
{
  "error": "string",
  "code": "string",
  "detail": "string"
}
{
  "error": "string",
  "code": "string",
  "detail": "string"
}