---
title: "Lists user segments in the resolved project, cursor-paginated."
method: GET
path: "/api/v1/orgs/{org}/projects/{project}/segments"
tags: ["User Segments"]
---

# Lists user segments in the resolved project, cursor-paginated.

`GET /api/v1/orgs/{org}/projects/{project}/segments`

## Request

- Base URL: `https://api.featureflip.io`
- URL: `https://api.featureflip.io/api/v1/orgs/{org}/projects/{project}/segments`
- Auth: API key in header `Authorization`

Like
List, ListUserSegmentsQuery has no
`Skip`/`Take` (a project's segment count is small), so this fetches the full set
and pages in-memory to still expose the standard cursor contract.

## Path parameters

- `org` string, required
- `project` string, required

## Query parameters

- `limit` integer
- `cursor` string

## Response `200`

OK

- PublicSegmentResponsePagedResult: A page of results plus an opaque cursor for the next page, or null when this is the last page. Wire keys are frozen: `items` (already lowercase under the camelCase policy) and `next_cursor` (pinned explicitly — the policy alone would emit `nextCursor`).
  - `items` PublicSegmentResponse[], nullable, required
    - `id` string, uuid, required
    - `key` string, nullable, required
    - `name` string, nullable, required
    - `description` string, nullable
    - `conditions` PublicSegmentConditionDto[], nullable, required
      - `attribute` string, nullable, required
      - `operator` 'Equals' | 'NotEquals' | 'Contains' | 'NotContains' | 'GreaterThan' | 'LessThan' | 'GreaterThanOrEqual' | 'LessThanOrEqual' | 'In' | 'NotIn' | 'MatchesRegex' | 'StartsWith' | 'EndsWith' | 'Before' | 'After' | 'SemverEquals' | 'SemverGreaterThan' | 'SemverGreaterThanOrEqual' | 'SemverLessThan' | 'SemverLessThanOrEqual', nullable, required: Allowed values: Equals, NotEquals, Contains, NotContains, GreaterThan, LessThan, GreaterThanOrEqual, LessThanOrEqual, In, NotIn, MatchesRegex, StartsWith, EndsWith, Before, After, SemverEquals, SemverGreaterThan, SemverGreaterThanOrEqual, SemverLessThan, SemverLessThanOrEqual.
      - `values` string[], nullable, required
      - `negate` boolean
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `_actions` object: Capability hints: which operations the authenticated caller may perform on this resource, each with allowed + optional reason. Computed from the caller's role and the resource's state. Injected at runtime; safe to ignore. Present only on top-level resource responses — nested occurrences (e.g. a rule inside a targeting-config response) do not carry it.
  - `next_cursor` string, nullable
  - `_actions` object: Capability hints: which operations the authenticated caller may perform on this resource, each with allowed + optional reason. Computed from the caller's role and the resource's state. Injected at runtime; safe to ignore. Present only on top-level resource responses — nested occurrences (e.g. a rule inside a targeting-config response) do not carry it.

## Other responses

- `401`: Authentication is required, or the supplied API token is invalid or expired.
- `404`: Not Found
- `429`: Rate limit exceeded. Retry after the interval indicated by the Retry-After header.

---

[API](https://skmtc.dev/featureflip/apis/management-api.md) · [All operations](https://skmtc.dev/featureflip/apis/management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/featureflip/apis/management-api/revisions/8a77e8581a45?raw)
