Shipeasy
Flags experimentsApiOperations

Search project resources

Universal substring search across the project's primary resources — feature gates, experiments, dynamic configs, killswitches, metrics, and team members.…

Universal substring search across the project's primary resources — feature gates, experiments, dynamic configs, killswitches, metrics, and team members. Matches the trimmed q against each resource's immutable name and its human title/display name (members match on display name or email), newest-first, capped per resource family so one noisy type can't crowd out the rest.

Returns a flat, ranked-by-type list of hits (members first); an empty or whitespace-only q returns no hits. Each hit carries a project-relative href that deep-links to the row.

Use case

Back a command-palette / quick-switcher in the dashboard, or look up the id of a resource by a fragment of its name before driving another API call.

GET
/api/admin/search

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

q?string

Search query. Matched as a case-insensitive substring against each resource's name and title/display name. Trimmed; empty returns no hits.

Header Parameters

X-Project-Id?string

Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://shipeasy.ai/api/admin/search"
{
  "hits": [
    {
      "type": "member",
      "id": "ana@example.com",
      "name": "Ana Ng",
      "title": "ana@example.com",
      "href": "/team"
    },
    {
      "type": "gate",
      "id": "gat_01j7w7m9q4hxbf6npe6s9zr3vc",
      "name": "checkout_v2",
      "title": "Checkout v2",
      "href": "/gates?open=gat_01j7w7m9q4hxbf6npe6s9zr3vc"
    },
    {
      "type": "experiment",
      "id": "exp_01j7w7m9q4hxbf6npe6s9zr3vd",
      "name": "checkout_button_color",
      "title": "Checkout button colour test",
      "href": "/experiments?open=exp_01j7w7m9q4hxbf6npe6s9zr3vd"
    }
  ]
}
{
  "error": "Malformed request (bad JSON, missing project scope).",
  "code": "BAD_REQUEST"
}
{
  "error": "Missing or invalid admin SDK key.",
  "code": "UNAUTHORIZED"
}

{
  "error": "Key is valid but not allowed to act on this project.",
  "code": "FORBIDDEN"
}

{
  "error": "The resource does not exist or is not visible to the caller.",
  "code": "NOT_FOUND"
}

{
  "error": "A resource with this name already exists in the project.",
  "code": "ALREADY_EXISTS"
}

{
  "error": "The request body failed structural (schema) validation.",
  "code": "VALIDATION"
}

Was this page helpful?
✎ Edit this page